WebDriver errors
Any WebDrivercommand that is sent to might plausibly receive an errorresponse. An error is represented by anHTTP response with anHTTP status code in the 4xx or 5xx range, and a JSON payload holding details of the error.
In this article
Payload
Theerror object is a JSON Object that bears three, and sometimes four, fields:
errorError type.
messageHuman-readable description of the nature of the error.
stacktraceStacktrace report of the active stack frames at the time when the error occurred.
data(optional)Arbitrary and implementation-defined data that it can be useful to present the user with.
Many drivers include theuser prompt's text when encountering anunexpected alert open error.
Example
For example aGET request to/session/1234/url, where1234 is a bogus session, would return a response with the404 Not Found status and the following body:
{ "value": { "error": "invalid session id", "message": "No active session with ID 1234", "stacktrace": "" }}It is optional for the driver to annotate errors with additional error data. Notably, this is common when a user prompt, such aswindow.alert, has opened a modal dialog after execution of your previous WebDriver command request.
Because both WebDriver and JavaScript execution is halted by such a dialog, we see anunexpected alert open error in the subsequent response:
{ "value": { "error": "unexpected alert open", "message": "", "stacktrace": "", "data": { "text": "Message from window.alert" } }}In mostclients the error would be represented by some sort of errortype orobject representation. In Python it is represented as aWebDriverException, in Node.js as aWebDriverError, and in Java also as aWebDriverException.
Table of errors
| Error type | HTTP status code | Description |
|---|---|---|
| element click intercepted | 400 Bad Request | TheElement Clickcommand could not be completed because theelement receiving the events is obscuring the element that was requested clicked. |
| element not interactable | 400 Bad Request | Acommand could not be completed because the element is not pointer- or keyboard interactable. |
| insecure certificate | 400 Bad Request | Navigation caused the user agent to hit a certificate warning, which is usually the result of an expired or invalid TLS certificate. |
| invalid argument | 400 Bad Request | The arguments passed to acommand are either invalid or malformed. |
| invalid cookie domain | 400 Bad Request | An illegal attempt was made to set a cookie under a different domain than the current page. |
| invalid element state | 400 Bad Request | Acommand could not be completed because the element is in an invalid state, e.g., attempting toclear an element that isn't both editable and resettable. |
| invalid selector | 400 Bad Request | An element retrieval command provided an unknown selector strategy. |
| invalid session id | 404 Not Found | Given session ID is not recognized, meaning the session either does not exist of that it's not active. Note that a session thathas been deleted cannot be re-used. |
| JavaScript error | 500 Internal Server Error | An error occurred while executing JavaScript supplied by the user. |
| move target out of bounds | 500 Internal Server Error | The target for mouse interaction is not in the browser's viewport and cannot be brought into that viewport. |
| no such alert | 404 Not Found | An attempt was made to operate on a user prompt when one was not open. |
| no such cookie | 404 Not Found | No cookie matching the given path name was found amongst thecookies of the currentdocument. |
| no such element | 404 Not Found | An element could not be located on the page using the given search parameters. |
| no such frame | 404 Not Found | Acommand to switch to a frame could not be satisfied because the frame could not be found. |
| no such window | 404 Not Found | Acommand to switch to a window could not be satisfied because the window could not be found. |
| script timeout | 408 Request Timeout | A script did not complete before its timeout expired. |
| session not created | 500 Internal Server Error | A new session could not be created, either because the browser could not be started or because the providedcapabilities to start the session did not match. |
| stale element reference | 404 Not Found | Acommand failed because the referencedelement is no longer attached to the DOM. |
| timeout | 408 Request Timeout | An operation did not complete before its timeout expired. |
| unable to set cookie | 500 Internal Server Error | Acommand to set a cookie's value could not be satisfied. |
| unable to capture screen | 500 Internal Server Error | A screen capture was made impossible. |
| unexpected alert open | 500 Internal Server Error | A modal dialog was open, blocking this operation. |
| unknown command | 404 Not Found | Acommand could not be executed because the driver was unaware of it. |
| unknown error | 500 Internal Server Error | An unknown error occurred in the driver whilst processing thecommand. |
| unknown method | 405 Method Not Allowed | The requestedcommand matched a known URL but did not match a method for that URL. |
| unsupported operation | 500 Internal Server Error | Indicates that acommand that should have executed properly cannot be supported for some reason. |