WebDriver 錯誤

傳送給 WebDriver 的任何 命令 都可能收到錯誤 響應。錯誤由具有 4xx 或 5xx 範圍內的 HTTP 狀態碼 和包含錯誤詳細資訊的 JSON 負載的 HTTP 響應 表示。

負載

錯誤物件 是一個 JSON 物件,包含三個,有時是四個欄位

error

錯誤型別。

message

錯誤的性質的人類可讀描述。

堆疊跟蹤

發生錯誤時活動堆疊幀的堆疊跟蹤報告。

data(可選)

任意的、由實現定義的、對使用者可能有用的資料。

許多驅動程式在遇到 意外的 alert 開啟 錯誤時會包含 使用者提示 的文字。

示例

例如,對 /session/1234/url 傳送的 GET 請求(其中 1234 是一個無效的會話)將返回一個具有 404 Not Found 狀態和以下正文的響應

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

驅動程式可以選擇用額外的錯誤資料來註解錯誤。特別是,當用戶提示(例如 window.alert)在執行您之前的 WebDriver 命令請求後開啟模態對話方塊時,這種情況很常見。

由於 WebDriver 和 JavaScript 執行都會被此類對話方塊暫停,因此我們在後續響應中會看到一個 意外的 alert 開啟 錯誤。

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

在大多數 客戶端 中,錯誤將表示為某種錯誤型別物件表示。在 Python 中,它表示為 WebDriverException,在 Node.js 中表示為 WebDriverError,在 Java 中也表示為 WebDriverException

錯誤表

錯誤型別 HTTP 狀態碼 描述
element click intercepted 400 Bad Request Element Click 命令 未能完成,因為接收事件的 元素 遮擋了請求點選的元素。
element not interactable 400 Bad Request 由於元素不可指標或鍵盤互動,命令 未能完成。
insecure certificate 400 Bad Request 導航導致使用者代理遇到證書警告,這通常是過期或無效 TLS 證書的結果。
invalid argument 400 Bad Request 傳遞給 命令 的引數無效或格式錯誤。
invalid cookie domain 400 Bad Request 嘗試在與當前頁面不同的域下設定 cookie,這是非法的。
invalid element state 400 Bad Request 由於元素處於無效狀態,命令 未能完成,例如,嘗試 清除 一個既不可編輯也不可重置的元素。
invalid selector 400 Bad Request 元素檢索命令提供了未知的選擇器策略。
invalid session id 404 Not Found 提供的會話 ID 未被識別,這意味著該會話要麼不存在,要麼不活躍。請注意,已刪除 的會話不能被重新使用。
JavaScript error 500 Internal Server Error 執行使用者提供的 JavaScript 時發生錯誤。
move target out of bounds 500 Internal Server Error 滑鼠互動的目標不在瀏覽器的視口內,也無法將其帶入視口。
no such alert 404 Not Found 嘗試操作一個不存在的使用者提示。
no such cookie 404 Not Found 在當前 文件Cookie 中未找到與給定路徑名稱匹配的 Cookie。
no such element 404 Not Found 使用給定的搜尋引數無法在頁面上找到元素。
no such frame 404 Not Found 切換到 frame 的 命令 未能滿足,因為找不到該 frame。
no such window 404 Not Found 切換到視窗的 命令 未能滿足,因為找不到該視窗。
script timeout 408 Request Timeout 指令碼未在超時到期前完成。
session not created 500 Internal Server Error 無法建立新會話,原因可能是瀏覽器啟動失敗,或者提供的啟動會話的 能力 不匹配。
stale element reference 404 Not Found 由於引用的 元素 不再附加到 DOM,命令 失敗。
超時 408 Request Timeout 操作未在超時到期前完成。
unable to set cookie 500 Internal Server Error 設定 cookie 值的 命令 未能滿足。
unable to capture screen 500 Internal Server Error 無法進行螢幕捕獲。
unexpected alert open 500 Internal Server Error 模態對話方塊已開啟,阻止了此操作。
unknown command 404 Not Found 由於驅動程式不瞭解該 命令,因此無法執行。
unknown error 500 Internal Server Error 驅動程式在處理 命令 時發生未知錯誤。
unknown method 405 Method Not Allowed 請求的 命令 匹配了已知 URL,但未匹配該 URL 的方法。
unsupported operation 500 Internal Server Error 表示某個本應正常執行的 命令 由於某種原因無法支援。

另見