WebDriver-Fehler

Jeder WebDriver-Befehl, der gesendet wird, kann plausiblerweise eine Fehler-Antwort erhalten. Ein Fehler wird durch eine HTTP-Antwort mit einem HTTP-Statuscode im Bereich von 4xx oder 5xx dargestellt und enthält eine JSON-Nutzlast mit Details zum Fehler.

Nutzlast

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

error

Fehlertyp.

message

Menschlich lesbare Beschreibung der Art des Fehlers.

stacktrace

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

data (optional)

Beliebige und implementierungsdefinierte Daten, die dem Benutzer nützlich sein können.

Viele Treiber enthalten den Text der Benutzeraufforderung, wenn sie auf einen unerwartet offenen Alarm-Fehler stoßen.

Beispiel

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

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

Es ist optional für den Treiber, Fehler mit zusätzlichen Fehlerinformationen zu annotieren. Dies ist insbesondere üblich, wenn eine Benutzeraufforderung, wie window.alert, ein modales Dialogfeld nach der Ausführung Ihrer vorherigen WebDriver-Befehlsanfrage geöffnet hat.

Da sowohl die Ausführung von WebDriver als auch von JavaScript durch ein solches Dialogfeld gestoppt wird, sehen wir einen unerwartet offenen Alarm-Fehler in der nachfolgenden Antwort:

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 Objektdarstellung dargestellt. In Python wird es als WebDriverException dargestellt, in Node.js als WebDriverError und in Java ebenfalls als WebDriverException.

Tabelle der Fehler

Fehlertyp HTTP-Statuscode Beschreibung
Elementklick blockiert 400 Bad Request Der Element Click-Befehl konnte nicht abgeschlossen werden, da das Element, das die Ereignisse empfängt, das angeklickte Element verdeckt.
Element nicht interagierbar 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, da das Element nicht zeige- oder tastaturinteragierbar ist.
Unsicheres Zertifikat 400 Bad Request Die Navigation führte dazu, dass der Benutzeragent eine Zertifikatswarnung angezeigt hat, was normalerweise auf ein abgelaufenes oder ungültiges TLS-Zertifikat zurückzuführen ist.
Ungültiges Argument 400 Bad Request Die an einen Befehl übergebenen Argumente sind entweder ungültig oder fehlerhaft formatiert.
Ungültige Cookie-Domain 400 Bad Request Es wurde ein illegaler Versuch unternommen, ein Cookie unter einer anderen Domain als der aktuellen Seite zu setzen.
Ungültiger Element-Status 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, da das Element in einem ungültigen Zustand ist, z.B. der Versuch, ein Element, das nicht bearbeitbar und rücksetzbar ist, zu löschen.
Ungültiger Selektor 400 Bad Request Ein Elementabrufsbefehl hat eine unbekannte Selektorstrategie bereitgestellt.
Ungültige Sitzungs-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 Sitzung, die gelöscht wurde, nicht wiederverwendet werden kann.
JavaScript-Fehler 500 Internal Server Error Ein Fehler trat bei der Ausführung von JavaScript auf, das vom Benutzer bereitgestellt wurde.
Ziel außerhalb des Bildschirmbereichs 500 Internal Server Error Das Ziel für die Mausinteraktion befindet sich nicht im Viewport des Browsers und kann nicht in diesen Viewport gebracht werden.
Kein solcher Alarm 404 Not Found Es wurde versucht, auf eine Benutzeraufforderung zuzugreifen, obwohl keine geöffnet war.
Kein solches Cookie 404 Not Found Kein Cookie, das dem angegebenen Pfadnamen entspricht, wurde unter den Cookies des aktuellen Dokuments gefunden.
Kein solches Element 404 Not Found Ein Element konnte auf der Seite mithilfe der angegebenen Suchparameter nicht gefunden werden.
Kein solcher Rahmen 404 Not Found Ein Befehl zum Wechseln zu einem Rahmen konnte nicht erfüllt werden, da der Rahmen nicht gefunden wurde.
Kein solches Fenster 404 Not Found Ein Befehl zum Wechseln zu einem Fenster konnte nicht erfüllt werden, da das Fenster nicht gefunden wurde.
Skript-Timeout 408 Request Timeout Ein Skript wurde nicht abgeschlossen, bevor sein Timeout abgelaufen ist.
Sitzung nicht erstellt 500 Internal Server Error Eine neue Sitzung konnte nicht erstellt werden, entweder weil der Browser nicht gestartet werden konnte oder weil die bereitgestellten Fähigkeiten zum Starten der Sitzung nicht übereinstimmten.
Veraltetereferenz 404 Not Found Ein Befehl ist fehlgeschlagen, weil das referenzierte Element nicht mehr an das DOM angehängt ist.
Timeout 408 Request Timeout Eine Operation wurde nicht abgeschlossen, bevor ihr Timeout abgelaufen ist.
Cookie konnte nicht gesetzt werden 500 Internal Server Error Ein Befehl, um den Wert eines Cookies zu setzen, konnte nicht erfüllt werden.
Bildschirmaufnahme nicht möglich 500 Internal Server Error Eine Bildschirmaufnahme war unmöglich.
Unerwartet offener Alarm 500 Internal Server Error Ein modales Dialogfeld war geöffnet und blockierte diesen Vorgang.
Unbekannter Befehl 404 Not Found Ein Befehl konnte nicht ausgeführt werden, weil der Treiber ihn nicht kannte.
Unbekannter Fehler 500 Internal Server Error Ein unbekannter Fehler trat im Treiber auf, während der Befehl verarbeitet wurde.
Unbekannte Methode 405 Method Not Allowed Der angeforderte Befehl entsprach einer bekannten URL, stimmte jedoch nicht mit einer Methode für diese URL überein.
Nicht unterstützte 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