Klickprobleme

Fehler „Element ist nicht anklickbar“

Beim Klicken von ChromeDriver wird ein Mausklick in der Mitte des ersten Client-Rechtecks des Elements simuliert. Am einfachsten finden Sie heraus, wohin ChromeDriver klickt, indem Sie die Chrome-Entwicklertools öffnen und das Element überprüfen, auf das direkt vor dem Klickvorgang geklickt wird. Wählen Sie das Element im Inspector aus und sehen Sie sich die blauen Felder an, die die Client-Rects des Elements darstellen(siehe Abbildung unten). ChromeDriver versucht, auf die Mitte des ersten zu klicken.

Wenn ChromeDriver den Fehler „Element ist nicht anklickbar“ ausgibt, liegt das höchstwahrscheinlich daran, dass der Nutzer diesen Ort nicht anklickbar kann. Platzieren Sie den Cursor zum Testen in die Mitte des ersten Clientrechteck und prüfen Sie, ob diese Position anklickbar ist.

Im obigen Fall wurde im Test versucht, auf das Ankerelement zu klicken. In diesem Fall ist der Anker nicht anklickbar, nur das untergeordnete Bild ist anklickbar. Aufgrund eines margin-bottom-Stils für das Bildelement befindet sich die Mitte des Ankerelements außerhalb des anklickbaren Bildbereichs, wodurch ChromeDriver einen Fehler ausgibt. Weitere Informationen dazu, wie Position oder Größe bestimmt werden, finden Sie in der W3-Spezifikation. Um den oben genannten Fall zu beheben, klicken Sie auf das Bild anstelle des Ankers.

Der Fehler „Element ist nicht anklickbar“ tritt häufig in den folgenden Situationen auf, wenn bei einem Test versucht wird:

  • Klicken Sie auf einen Anker, dessen anklickbare untergeordnete Elemente nicht innerhalb der Ankergrenzen liegen (siehe oben).
  • Klicken Sie auf ein Element, das vollständig oder teilweise unter einem anderen Element platziert ist.
  • Auf ein Element außerhalb des sichtbaren Bereichs klicken, wenn ein festes Overlay vorhanden ist (wird zu dem Element gescrollt, aber es kann unter dem festen Overlay gescrollt werden)
  • Auf ein Element klicken, das in der Mitte nicht anklickbar ist (z. B. einige Arten von konvexen SVG-Elementen)

Diese Probleme lassen sich häufig beheben, indem Sie entweder auf ein untergeordnetes Element eines bestimmten Elements klicken, das blockierende Element programmatisch entfernen oder ausblenden, die API für erweiterte Interaktionen verwenden, um mit einem Abstand von oben links auf das Element zu klicken, oder ein Mausklick-Ereignis in JavaScript simulieren.

Fehler „Element ist nicht anklickbar“

Dies liegt in der Regel daran, dass sich der Standort des Elements einige Zeit geändert hat, nachdem ChromeDriver den Standort des Elements ermittelt hat, aber bevor ChromeDriver einen Klick an der Position ausgibt.

Sie können feststellen, ob das das Problem ist, indem Sie die Ausnahme beim Klick abfangen und sofort die aktuelle Position und Größe des Elements protokollieren. Vergleichen Sie dies mit dem Standort, den ChromeDriver meldet, dass er versucht hat, auf die Ausnahme zu klicken, und prüfen Sie, ob sie sich unterscheiden. In diesem Fall müssen Sie warten, bis sich das Element nicht mehr bewegt, oder noch einmal klicken. Falls nicht, melden Sie den Fehler mit einer kleinen Testseite, mit der das Problem reproduziert werden kann (auch wenn das Problem nur gelegentlich ausgelöst wird).

ChromeDriver kann auf ein sich bewegendes Element nicht klicken

Diese Funktion von ChromeDriver wird nicht unterstützt. Wenn das Element schließlich beendet wird, warten Sie, bis dies geschieht. Wenn das Element nie aufhört, sich zu bewegen, garantiert ChromeDriver nicht, dass der Klick erfolgreich ist.