當使用特殊的測試管理工具 (可能是 IDE) 或持續建構系統 (例如 Jenkins) 執行 ChromeDriver 或 Chrome 時,經常會發生這種情況。
首先,請嘗試透過一般使用者命令提示字元啟動測試使用的 Chrome 二進位檔 (檢查 chromedriver.log
檔案,瞭解目前使用的 Chrome )。如果您要將任何特殊指令列切換按鈕或引數傳遞至 Chrome,請務必一併加入這些項目。如果 Chrome 無法正常啟動,您必須修正 Chrome 的安裝問題 (也許是重新安裝)。
假設您可以透過命令提示字元執行 Chrome,下一步應該查看在測試環境中執行測試時,是否會發生同樣的問題 (建議直接從一般使用者的命令提示點啟動測試二進位檔或指令碼)。此外,您也應該檢查是否能直接從測試啟動 Chrome (不使用 WebDriver/ChromeDriver)。舉例來說,在 Java 中,您可以透過 ProcessBuilder API 直接啟動 Chrome 二進位檔。 如果測試環境中出現相同的問題,請提出新問題,並附上如何重現問題的操作說明。
否則,如果問題只發生在您的特殊測試環境,請按照下列步驟操作:
使用 Chrome 的替代安裝程式。即可為所有使用者安裝 Chrome。如果您是以背景服務的形式執行 Elenium,通常可以修正這類問題。
Chrome 在啟動期間以根使用者 (管理員) 的身分執行 Chrome 的常見原因之一。雖然您可以解決這個問題,只要在建立 WebDriver 工作階段時傳送 --no-sandbox
標記,我們仍不支援這種設定,因此強烈建議您不要採用這類設定。請將環境設為以一般使用者身分執行 Chrome。
如果上述解決方案都無法解決問題,請提交新問題,並附上如何重現問題的操作說明。請注意,如果問題只發生在特殊的特殊測試環境,則 ChromeDriver 開發人員可能會選擇不調查/解決問題。