مشاكل النقر

الخطأ "العنصر غير قابل للنقر"

يمكن النقر على ChromeDriver من خلال محاكاة النقر بالماوس في وسط مستطيل العميل الأول للعنصر (أو مستطيل العميل المحاذي إذا لم يكن هناك مستطيل عميل أول). إن أسهل طريقة لمعرفة المكان الذي يحاول ChromeDriver النقر عليه هي فتح أدوات مطوّري برامج Chrome وفحص العنصر ليتم النقر عليه مباشرةً قبل استدعاء عملية النقر. حدد العنصر في الباحث ولاحظ المربع(المربعات) الأزرق التي تمثل مستطيلات العميل، كما هو موضح في الصورة أدناه. سيحاول ChromeDriver النقر على منتصف أول نافذة.

إذا عرض ChromeDriver الخطأ "العنصر غير قابل للنقر"، يحتمل أن يكون ذلك لأن هذا الموقع لا يمكن للمستخدم النقر عليه. للاختبار، ضع المؤشر في وسط مستطيل العميل الأول بنفسك وتحقق مما إذا كان هذا الموقع قابلاً للنقر أم لا.

في الحالة المذكورة أعلاه، كان الاختبار يحاول النقر على عنصر الارتساء. لا يمكن النقر على علامة الارتساء في هذه الحالة، بل يمكن النقر على الصورة الفرعية فقط. وبسبب نمط margin-bottom على عنصر الصورة، يقع وسط عنصر الارتساء خارج حدود الصورة القابلة للنقر، وبالتالي يعرض ChromeDriver خطأ. لمزيد من المعلومات حول كيفية تحديد الموضع/الحجم، راجع مواصفات w3. لإصلاح الحالة أعلاه، انقر على الصورة بدلاً من علامة الارتساء.

غالبًا ما يحدث الخطأ "العنصر غير قابل للنقر" في الحالات التالية عندما يحاول الاختبار:

  • النقر فوق علامة ارتساء لا توجد عناصر تابعة لها قابلة للنقر داخل حدود الارتساء (كما هو موضح أعلاه)
  • النقر على عنصر أسفل عنصر آخر بالكامل أو جزئيًا
  • النقر على عنصر خارج الشاشة عند وجود تراكب ثابت (سيتم تمرير العنصر إلى وضع العرض، ولكن قد يتم تمريره أسفل التراكب الثابت)
  • النقر على عنصر غير قابل للنقر في المنتصف (على سبيل المثال، بعض أنواع عناصر SVG المحدبة)

يمكن حل هذه المشاكل غالبًا إما عن طريق النقر على عنصر ثانوي للعنصر المحدد، أو من خلال إزالة عنصر الحظر أو إخفائه بشكل آلي، أو باستخدام واجهة برمجة تطبيقات التفاعلات المتقدمة للنقر بإزاحة من أعلى يسار العنصر، أو عن طريق محاكاة حدث نقر بالماوس في JavaScript.

الخطأ "العنصر غير قابل للنقر"

يحدث هذا على الأرجح لأنّ موقع العنصر قد تغيّر بعض الوقت بعد أن حدّد ChromeDriver موقع العنصر، ولكن قبل أن يصدر ChromeDriver نقرةً في الموقع.

لتحديد ما إذا كانت هذه هي المشكلة، التقط الاستثناء من النقرة وسجّل على الفور الموقع الحالي وحجم العنصر. قارن ذلك بالموقع الذي أبلغ عنه ChromeDriver أنه حاول النقر عليه في الاستثناء ومعرفة ما إذا كان مختلفًا أم لا. إذا كان الأمر كذلك، فأنت بحاجة إلى انتظار العنصر للتوقف عن الحركة أو محاولة النقر مرة أخرى. إذا لم يكن الأمر كذلك، فأبلغ عن الخطأ باستخدام صفحة اختبارية صغيرة يمكن استخدامها لإعادة إظهار المشكلة (حتى لو كانت تؤدي في بعض الأحيان إلى ظهور المشكلة).

لا يمكن لبرنامج ChromeDriver النقر على عنصر متحرك

هذه ميزة غير متاحة في ChromeDriver. إذا توقف العنصر في النهاية، فانتظر حدوث ذلك. إذا لم يتوقف العنصر عن الحركة أبدًا، لا يضمن ChromeDriver أن يتم النقر بنجاح.