Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WebDriver-Fehler

Jeder WebDriver-Classic-Befehl, der gesendet wird, kann möglicherweise eine Fehlerantwort erhalten. Ein Fehler wird durch eine HTTP-Antwort mit einem HTTP-Statuscode im Bereich von 4xx oder 5xx dargestellt und beinhaltet eine JSON-Nutzlast mit Details zum Fehler.

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 zu den aktiven Stapelrahmen zum Zeitpunkt des Auftretens des Fehlers.

data (optional)

Beliebige und implementierungsspezifische Daten, die es nützlich sein könnten, dem Benutzer zu präsentieren. Viele Treiber beinhalten den Text des Benutzer-Prompts, wenn sie auf einen unexpected alert open-Fehler stoßen.

Beispiel

Ein GET-Anfrage zu /session/1234/url, wobei 1234 eine ungültige Sitzung ist, würde eine Antwort mit dem 404 Not Found Status und dem folgenden 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 Fehlerdaten zu versehen. Besonders häufig ist dies, wenn ein Benutzer-Prompt, wie window.alert, nach der Ausführung Ihrer vorherigen WebDriver-Befehlanforderung einen modalen Dialog öffnet.

Da sowohl WebDriver als auch die JavaScript-Ausführung durch einen solchen Dialog angehalten werden, sehen wir einen unexpected alert open-Fehler in der nachfolgenden Antwort:

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 von Fehlertyp oder Objektdarstellung repräsentiert. In Python wird er als WebDriverException dargestellt, in Node.js als WebDriverError und in Java ebenfalls als WebDriverException.

Tabelle der Fehler

Fehlertyp HTTP-Statuscode Beschreibung
element click intercepted 400 Bad Request Der Element Click 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 als Zeiger- oder Tastatureingabe interaktiv ist.
insecure certificate 400 Bad Request Die Navigation führte dazu, dass der Benutzer-Agent auf eine Zertifikatswarnung stieß, die normalerweise das Ergebnis eines abgelaufenen oder ungültigen TLS-Zertifikats ist.
invalid argument 400 Bad Request Die an einen Befehl übergebenen Argumente sind entweder ungültig oder fehlerhaft formatiert.
invalid cookie domain 400 Bad Request Ein illegaler Versuch wurde unternommen, ein Cookie unter einer anderen Domain als der aktuellen Seite zu setzen.
invalid element state 400 Bad Request Ein Befehl konnte nicht abgeschlossen werden, da das Element sich in einem ungültigen Zustand befindet, z.B. ein Versuch, ein Element zu löschen, das nicht sowohl editierbar als auch zurücksetzbar ist.
invalid selector 400 Bad Request Ein Elementabrufsbefehl lieferte eine unbekannte Selektorstrategie.
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 Sitzung, die gelöscht wurde, nicht wiederverwendet werden kann.
javascript error 500 Internal Server Error Beim Ausführen von JavaScript, das vom Benutzer bereitgestellt wurde, ist ein Fehler aufgetreten.
move target out of bounds 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.
no such alert 404 Not Found Es wurde versucht, mit einem Benutzer-Prompt zu interagieren, obwohl keines geöffnet war.
no such cookie 404 Not Found Unter den Cookies des aktuellen Dokuments wurde kein Cookie mit dem angegebenen Pfadnamen 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, zu einem Frame zu wechseln, konnte nicht ausgeführt werden, da der Frame nicht gefunden werden konnte.
no such window 404 Not Found Ein Befehl, zu einem Fenster zu wechseln, konnte nicht ausgeführt werden, da das Fenster nicht gefunden werden konnte.
script timeout 408 Request Timeout Ein Skript wurde nicht abgeschlossen, bevor seine Zeitüberschreitung abgelaufen ist.
session not created 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.
stale element reference 404 Not Found Ein Befehl schlug fehl, weil das referenzierte Element nicht mehr an das DOM angehängt war.
timeout 408 Request Timeout Eine Operation wurde nicht abgeschlossen, bevor ihre Zeitüberschreitung abgelaufen ist.
unable to set cookie 500 Internal Server Error Ein Befehl, den Wert eines Cookies zu setzen, konnte nicht ausgeführt werden.
unable to capture screen 500 Internal Server Error Eine Bildschirmaufnahme war unmöglich.
unexpected alert open 500 Internal Server Error Ein modaler Dialog war geöffnet und blockierte diese Operation.
unknown command 404 Not Found Ein Befehl konnte nicht ausgeführt werden, weil der Treiber ihn nicht kannte.
unknown error 500 Internal Server Error Ein unbekannter Fehler trat im Treiber auf, während er den Befehl verarbeitete.
unknown method 405 Method Not Allowed Der angeforderte Befehl stimmte mit einer bekannten URL überein, aber 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