WebDriver-Fehler

Jeder WebDriver-Befehl, der gesendet wird, könnte möglicherweise eine Fehlermeldung im Response zurückgeben. Ein Fehler wird durch eine HTTP-Antwort mit einem HTTP-Statuscode im Bereich von 4xx oder 5xx dargestellt, sowie durch eine JSON-Nutzlast, die Details des Fehlers enthält.

Nutzlast

Das Fehlerobjekt ist ein JSON-Objekt, das drei und gelegentlich vier Felder enthält:

error

Fehlerart.

message

Menschlich lesbare Beschreibung der Art des Fehlers.

stacktrace

Stacktrace-Bericht der aktiven Stackframes zum Zeitpunkt des Auftretens des Fehlers.

data (optional)

Beliebige und implementationsspezifische Daten, die zur Präsentation gegenüber dem Benutzer nützlich sein können.

Viele Treiber fügen den Text des Benutzer-Prompts hinzu, wenn ein unerwartetes Alert-Öffnen Fehler auftritt.

Beispiel

Ein Beispiel wäre eine GET-Anfrage an /session/1234/url, wobei 1234 eine ungültige Sitzung ist, die eine Antwort mit dem 404 Not Found Status und folgendem Inhalt zurückgeben würde:

json
{
  "value": {
    "error": "invalid session id",
    "message": "No active session with ID 1234",
    "stacktrace": ""
  }
}

Es ist optional, dass der Treiber Fehler mit zusätzlichen Fehlerdaten annotiert. Insbesondere ist dies häufig der Fall, wenn ein Benutzer-Prompt, wie window.alert, nach der Ausführung Ihres vorherigen WebDriver-Befehl-Anfrage ein modales Dialogfeld geöffnet hat.

Da sowohl WebDriver- als auch JavaScript-Ausführung durch ein solches Dialogfeld angehalten wird, sehen wir in der nachfolgenden Antwort einen unerwarteten Alert-Öffnen Fehler:

json
{
  "value": {
    "error": "unexpected alert open",
    "message": "",
    "stacktrace": "",
    "data": {
      "text": "Message from window.alert"
    }
  }
}

In den meisten Clients wird der Fehler durch eine Art von Fehler typ oder Objektrepräsentation dargestellt. In Python wird er als WebDriverException dargestellt, in Node.js als WebDriverError, und in Java ebenfalls als WebDriverException.

Tabelle der Fehler

Fehlerart HTTP-Statuscode Beschreibung
element click intercepted 400 Bad Request Der Elementklick Befehl konnte nicht abgeschlossen werden, da das Element, das die Ereignisse empfängt, das angeforderte Element verdeckt.
element not interactable 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, da das Element nicht per Zeiger- oder Tastaturschnittstelle interagiert werden kann.
insecure certificate 400 Bad Request Die Navigation veranlasste den Benutzer-Agenten, eine Zertifikatwarnung zu treffen, was in der Regel auf ein abgelaufenes oder ungültiges TLS-Zertifikat zurückzuführen ist.
invalid argument 400 Bad Request Die an einen Befehl übergebenen Argumente sind entweder ungültig oder fehlerhaft.
invalid cookie domain 400 Bad Request Es wurde ein illegaler Versuch unternommen, ein Cookie unter einem anderen Domainnamen als der aktuellen Seite zu setzen.
invalid element state 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, da sich das Element in einem ungültigen Zustand befindet, z.B. der Versuch, ein Element zu löschen, das nicht bearbeitbar und zurücksetzbar ist.
invalid selector 400 Bad Request Ein Elementabrufbefehl hat eine unbekannte Selektorstrategie bereitgestellt.
invalid session id 404 Not Found Die angegebene Sitzungs-ID wird nicht erkannt, was bedeutet, dass die Sitzung entweder nicht existiert oder nicht aktiv ist. Beachten Sie, dass eine gelöschte Sitzung nicht wiederverwendet werden kann.
JavaScript error 500 Internal Server Error Bei der Ausführung von JavaScript, das vom Benutzer bereitgestellt wurde, ist ein Fehler aufgetreten.
move target out of bounds 500 Internal Server Error Das Ziel für Mausinteraktionen befindet sich nicht im Viewport des Browsers und kann nicht in diesen Viewport gebracht werden.
no such alert 404 Not Found Es wurde versucht, mit einem Benutzerprompt zu arbeiten, wenn kein Fenster geöffnet war.
no such cookie 404 Not Found Kein Cookie, das mit dem angegebenen Pfadnamen übereinstimmt, wurde unter den Cookies des aktuellen Dokuments gefunden.
no such element 404 Not Found Ein Element konnte auf der Seite mit den angegebenen Suchparametern nicht gefunden werden.
no such frame 404 Not Found Ein Befehl zum Wechseln zu einem Frame konnte nicht ausgeführt werden, da der Frame nicht gefunden wurde.
no such window 404 Not Found Ein Befehl zum Wechseln zu einem Fenster konnte nicht ausgeführt werden, da das Fenster nicht gefunden wurde.
script timeout 408 Request Timeout Ein Skript wurde nicht abgeschlossen, bevor sein Timeout abgelaufen ist.
session not created 500 Internal Server Error Eine neue Sitzung konnte nicht erstellt werden, weil entweder der Browser nicht gestartet werden konnte oder die bereitgestellten Funktionen, um die Sitzung zu starten, nicht übereinstimmten.
stale element reference 404 Not Found Ein Befehl konnte nicht abgeschlossen werden, da das referenzierte Element nicht mehr an das DOM gebunden ist.
timeout 408 Request Timeout Eine Operation wurde nicht abgeschlossen, bevor ihr Timeout abgelaufen ist.
unable to set cookie 500 Internal Server Error Ein Befehl, um den Wert eines Cookies zu setzen, konnte nicht erfüllt werden.
unable to capture screen 500 Internal Server Error Eine Bildschirmaufnahme konnte nicht gemacht werden.
unexpected alert open 500 Internal Server Error Ein modales Dialogfeld war geöffnet und blockierte diese Operation.
unknown command 404 Not Found Ein Befehl konnte nicht ausgeführt werden, da der Treiber ihn nicht kannte.
unknown error 500 Internal Server Error Ein unbekannter Fehler trat im Treiber während der Verarbeitung des Befehls auf.
unknown method 405 Method Not Allowed Der angeforderte Befehl stimmte mit einer bekannten URL überein, jedoch nicht mit einer Methode für diese URL.
unsupported operation 500 Internal Server Error Zeigt an, dass ein Befehl, der ordnungsgemäß hätte ausgeführt werden sollen, aus irgendeinem Grund nicht unterstützt werden kann.

Siehe auch