Klickprobleme

Fehler „Element ist nicht anklickbar“

Das ChromeDriver-Klick simuliert einen Mausklick in der Mitte des ersten Client-Rechtecks des Elements (oder des Begrenzungsrahmen-Client-Rechts, wenn es kein erstes Client-Rechteck hat). Am einfachsten finden Sie heraus, wo ChromeDriver zu klicken versucht, indem Sie die Chrome-Entwicklertools öffnen und direkt vor dem Aufruf des Klickvorgangs das Element untersuchen, auf das geklickt werden soll. 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 diese Position nicht anklicken kann. Platzieren Sie zum Testen den Cursor in die Mitte des ersten Client-Rechtecks und prüfen Sie, ob diese Stelle anklickbar ist.

Im Beispiel oben wurde beim Test versucht, auf das Ankerelement zu klicken. In diesem Fall ist der Anker nicht anklickbar, sondern nur das untergeordnete Bild. Aufgrund des margin-bottom-Stils für das Bildelement liegt die Mitte des Ankerelements außerhalb der anklickbaren Bildgrenzen, sodass ChromeDriver einen Fehler ausgibt. Weitere Informationen zum Ermitteln der Positionierung/Größenbestimmung finden Sie in der w3-Spezifikation. Klicken Sie zum Beheben des obigen Beispiels 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 Nachfolgerelemente nicht innerhalb der Ankergrenzen liegen (wie oben).
  • ganz oder teilweise auf ein Element unter einem anderen Element klicken
  • auf ein Element außerhalb des sichtbaren Bildschirmbereichs klicken, wenn ein festes Overlay vorhanden ist. Das Element wird sichtbar gemacht, aber es kann unter dem festen Overlay gescrollt werden.
  • Sie können auf ein Element in der Mitte klicken, das nicht anklickbar ist (z. B. einige Arten von konvexen SVG-Elementen).

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

Fehler „Element ist nicht anklickbar“

Dies liegt wahrscheinlich daran, dass sich die Position des Elements einige Zeit geändert hat, nachdem ChromeDriver die Position des Elements ermittelt hat, aber bevor ChromeDriver tatsächlich einen Klick an der Position ausgibt.

Um festzustellen, ob dies das Problem ist, erfassen Sie die Ausnahme vom Klick und protokollieren Sie sofort die aktuelle Position und Größe des Elements. Vergleichen Sie dies mit dem Standort, nach dem ChromeDriver gemeldet hat, dass versucht wurde, 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 es noch einmal versuchen. Falls nicht, melden Sie einen Fehler mit einer kleinen Testseite, auf der sich das Problem reproduzieren lässt, auch wenn das Problem nur gelegentlich ausgelöst wird.

ChromeDriver kann auf ein bewegliches Element nicht klicken

Diese Funktion wird von ChromeDriver nicht unterstützt. Warten Sie, bis das Element beendet wird. Wenn sich das Element nicht bewegt, garantiert ChromeDriver nicht, dass der Klick erfolgreich ist.