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 4xx oder 5xx dargestellt und enthält eine JSON-Nutzlast mit Details des Fehlers.

Nutzlast

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

error

Fehlertyp.

message

Menschlich lesbare Beschreibung der Art des Fehlers.

stacktrace

Stacktrace-Bericht über die aktiven Stack-Frames zum Zeitpunkt des Auftretens des Fehlers.

data (optional)

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

Viele Treiber enthalten den Text der Benutzeraufforderung bei Auftreten eines unerwarteten geöffneten Alarms-Fehlers.

Beispiel

Zum Beispiel würde ein GET-Anfrage an /session/1234/url, wobei 1234 eine ungültige Sitzung ist, eine Antwort mit dem 404 Not Found Status und dem folgenden Körper 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 Fehlerdaten zu annotieren. Dies ist insbesondere üblich, wenn eine Benutzeraufforderung, wie window.alert, nach der Ausführung Ihrer vorherigen WebDriver-Befehl-Anfrage einen modalen Dialog geöffnet hat.

Da sowohl die WebDriver- als auch die JavaScript-Ausführung durch einen solchen Dialog angehalten werden, sehen wir in der nachfolgenden Antwort einen unerwarteten geöffneten Alarm-Fehler:

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

In den meisten Clients würde der Fehler durch eine Art Fehlertyp oder Objektdarstellung dargestellt. In Python wird er als WebDriverException dargestellt, in Node.js als WebDriverError, und in Java ebenfalls als WebDriverException.

Fehlerübersicht

Fehlertyp HTTP-Statuscode Beschreibung
Element click intercepted 400 Bad Request Der Element Click-Befehl konnte nicht abgeschlossen werden, weil das Element, das die Ereignisse empfängt, das angeforderte Element verdeckt.
Element not interactable 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, weil das Element weder zeiger- noch tastaturinteraktiv ist.
Unsicheres Zertifikat 400 Bad Request Die Navigation führte dazu, dass der Benutzeragent auf eine Zertifikatwarnung stieß, was normalerweise das Ergebnis eines abgelaufenen oder ungültigen TLS-Zertifikats ist.
Ungültiges Argument 400 Bad Request Die an einen Befehl übergebenen Argumente sind entweder ungültig oder fehlerhaft.
Ungültige Cookie-Domain 400 Bad Request Ein illegaler Versuch wurde unternommen, ein Cookie unter einer anderen Domain als der aktuellen Seite zu setzen.
Ungültiger Elementstatus 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, weil das Element in einem ungültigen Status ist, z.B. beim Versuch, ein nicht sowohl bearbeitbares als auch zurücksetzbares Element zu löschen.
Ungültiger Selektor 400 Bad Request Ein Elementabrufbefehl stellte eine unbekannte Selektorstrategie bereit.
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 gelöschte Sitzung nicht wiederverwendet werden kann.
JavaScript-Fehler 500 Internal Server Error Ein Fehler trat beim Ausführen von JavaScript auf, das vom Benutzer bereitgestellt wurde.
Ziel verschieben außerhalb der Grenzen 500 Internal Server Error Das Ziel für die Mausinteraktion befindet sich nicht im Ansichtsbereich des Browsers und kann nicht in diesen Ansichtsbereich gebracht werden.
Kein solches Warnfenster 404 Not Found Ein Versuch wurde unternommen, mit einer Benutzeraufforderung zu arbeiten, wenn 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 mit den angegebenen Suchparametern nicht gefunden werden.
Kein solcher Rahmen 404 Not Found Ein Befehl, um zu einem Rahmen zu wechseln, konnte nicht erfüllt werden, weil der Rahmen nicht gefunden werden konnte.
Kein solches Fenster 404 Not Found Ein Befehl, um zu einem Fenster zu wechseln, konnte nicht erfüllt werden, weil das Fenster nicht gefunden werden konnte.
Script-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.
Veraltete Elementreferenz 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 kann nicht gesetzt werden 500 Internal Server Error Ein Befehl, um den Wert eines Cookies zu setzen, konnte nicht erfüllt werden.
Bildschirm kann nicht erfasst werden 500 Internal Server Error Eine Bildschirmaufnahme war unmöglich.
Unerwarteter geöffneter Alarm 500 Internal Server Error Ein modales Dialogfeld war geöffnet, was diese Operation blockierte.
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 beim Verarbeiten des Befehls auf.
Unbekannte Methode 405 Method Not Allowed Der angeforderte Befehl entsprach einer bekannten URL, passte jedoch nicht zu einer Methode für diese URL.
Nicht unterstützte Operation 500 Internal Server Error Gibt an, dass ein Befehl, der korrekt hätte ausgeführt werden sollen, aus irgendeinem Grund nicht unterstützt werden kann.

Siehe auch