مشکلات کلیک کردن

خطای "عنصر قابل کلیک نیست".

کلیک کردن ChromeDriver با شبیه‌سازی یک کلیک ماوس در وسط اولین رکت کلاینت عنصر (یا محدود کردن راست کلاینت اگر اولین راست کلاینت نداشته باشد) کار می‌کند. ساده‌ترین راه برای پیدا کردن جایی که ChromeDriver می‌خواهد کلیک کند این است که ابزارهای توسعه کروم را باز کنید و قبل از فراخوانی عملیات کلیک، عنصری را که باید روی آن کلیک کنید، بررسی کنید. عنصر موجود در بازرس را انتخاب کنید و به کادر(های) آبی که نمایانگر قسمت مشتری عنصر است، توجه کنید، همانطور که در تصویر زیر نشان داده شده است. ChromeDriver سعی خواهد کرد وسط اولین مورد کلیک کند.

اگر ChromeDriver خطای «عنصر قابل کلیک نیست» را ارسال می‌کند، به احتمال زیاد به این دلیل است که آن مکان واقعاً توسط کاربر قابل کلیک نیست. برای آزمایش، مکان‌نمای خود را در وسط اولین مشتری قرار دهید و ببینید آیا آن مکان قابل کلیک است یا خیر.

در مورد بالا، آزمایش سعی داشت روی عنصر لنگر کلیک کند. لنگر در این مورد قابل کلیک نیست. فقط تصویر کودک است. به دلیل سبک margin-bottom در عنصر تصویر، وسط عنصر لنگر خارج از محدوده تصویر قابل کلیک قرار می گیرد، و بنابراین ChromeDriver یک خطا ایجاد می کند. برای اطلاعات بیشتر در مورد نحوه تعیین موقعیت/اندازه، به مشخصات w3 مراجعه کنید. برای تعمیر کیس بالا، به جای لنگر روی تصویر کلیک کنید.

خطای "عنصر قابل کلیک نیست" اغلب در شرایط زیر رخ می دهد، زمانی که یک آزمایش سعی می کند:

  • روی یک لنگر کلیک کنید که عناصر اصلی قابل کلیک آن در محدوده لنگر نیستند (مانند بالا)
  • روی یک عنصر به طور کامل یا جزئی در زیر عنصر دیگر کلیک کنید
  • هنگامی که یک همپوشانی ثابت وجود دارد، روی یک عنصر خارج از صفحه کلیک کنید (عنصر به نمای پیمایش می شود، اما ممکن است زیر پوشش ثابت پیمایش شود)
  • روی عنصری که در وسط قابل کلیک نیست کلیک کنید (مثلاً برخی از انواع عناصر SVG محدب)

این مشکلات را اغلب می‌توان با کلیک کردن بر روی فرزند عنصر داده‌شده، با حذف یا پنهان کردن عنصر مسدودکننده به‌صورت برنامه‌ریزی، با استفاده از API تعاملات پیشرفته برای کلیک کردن در یک افست از سمت چپ بالای عنصر، یا با شبیه‌سازی یک ماوس حل کرد. روی رویداد در جاوا اسکریپت کلیک کنید.

خطای "عنصر قابل کلیک نیست".

این به احتمال زیاد به این دلیل رخ می دهد که مکان عنصر مدتی پس از تعیین مکان عنصر توسط ChromeDriver تغییر کرده است، اما قبل از اینکه ChromeDriver واقعاً روی آن مکان کلیک کند.

برای تعیین اینکه آیا این مشکل شماست، استثنا را از کلیک بگیرید و بلافاصله مکان و اندازه فعلی عنصر را ثبت کنید. آن را با مکانی که ChromeDriver گزارش می دهد که سعی کرده روی استثنا کلیک کند مقایسه کنید و ببینید که آیا آنها متفاوت هستند یا خیر. اگر چنین است، باید منتظر بمانید تا عنصر حرکت خود را متوقف کند یا سعی کنید دوباره کلیک کنید. در غیر این صورت، یک باگ را با یک صفحه آزمایشی کوچک ثبت کنید که می تواند برای بازتولید مشکل شما استفاده شود (حتی اگر فقط گهگاه باعث ایجاد مشکل شود).

ChromeDriver نمی‌تواند روی یک عنصر متحرک کلیک کند

این ویژگی پشتیبانی‌شده ChromeDriver نیست. اگر عنصر در نهایت متوقف شد، منتظر بمانید تا این اتفاق بیفتد. اگر عنصر هرگز حرکت خود را متوقف نکند، ChromeDriver تضمین نمی کند که کلیک موفقیت آمیز باشد.