簡體   English   中英

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed using ChromeDriver Selenium in Jenkins on Ubuntu 18.04

[英]org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed using ChromeDriver Selenium in Jenkins on Ubuntu 18.04

Chrome 在我的 Jenkins 上不穩定。 當我運行 build 5 次時,它運行 1 - 2 次成功,另外 3 次出現上述錯誤。

錯誤快照: 在此處輸入圖像描述

鉻的代碼:

ChromeOptions options = new ChromeOptions();
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
driver = new ChromeDriver(options);
driver.get("https://mywebsite.com");
     

我已經采取了一些步驟:

  1. 為 google chrome 和 chrome 驅動提供 777 權限

  2. 設置:在構建之前啟動 Xvfb,並在 Jenkins 構建設置中將其關閉為 True 在此處輸入圖像描述

  3. ChromeDriver 81.0.4044.69

  4. 谷歌瀏覽器 81.0.4044.129

  5. Ubuntu 18.04.4 LTS(GNU/Linux 4.15.0-99-通用 x86_64)

此錯誤消息...

快照

...意味着ChromeDriver無法啟動/產生新的瀏覽上下文,即Chrome 瀏覽器session。


深潛

查看您提供的錯誤堆棧跟蹤的快照,盡管您提到了使用ChromeDriver 81.0.4044.69Google Chrome 81.0.4044.129 ,但您使用的不同二進制文件的版本之間仍然存在不匹配,可能是Chrome瀏覽器未安裝在系統中的默認位置或由於 JDK 不匹配。 此外, ChromeDriver 81.0.4044.69 (2020-03-17)有點不穩定,已被ChromeDriver 81.0.4044.138 (2020-05-05)取代

但是,服務器(即ChromeDriver)希望您將Chrome安裝在每個系統的默認位置,如下圖所示:

Chrome_binary_expected_location

1對於 Linux 系統,ChromeDriver 期望/usr/bin/google-chrome成為實際 Chrome 二進制文件的符號鏈接。

您可以在什么是 ChromeDriver 的默認位置以及在 Windows 上安裝 Chrome中找到詳細討論


解決方案

如果您在非標准位置使用Chrome可執行文件,則必須覆蓋 Chrome 二進制位置,如下所示:

  • 基於代碼的解決方案:

     System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); ChromeOptions options = new ChromeOptions(); options.setBinary('/usr/bin/google-chrome'); //chrome binary location options.addArguments("--headless"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); WebDriver driver = new ChromeDriver(options); driver.get("https://www.google.com/"); //execute the remaining steps driver.quit();
  • 其他注意事項 - 確保以下事項:

    • JDK升級到當前級別JDK 8u251
    • Selenium升級到當前級別版本 3.141.59
    • ChromeDriver已更新至當前ChromeDriver v81.0.4044.138級別。
    • Chrome已更新至當前Chrome 版本 81.0.4044.138級別。 (根據ChromeDriver v80.0 發行說明
    • 通過您的IDE清理您的項目工作區,並僅使用所需的依賴項重建您的項目。
    • 非 root用戶身份執行您的@Test
    • 始終在tearDown(){}方法中調用driver.quit()以優雅地關閉和銷毀WebDriverWeb 客戶端實例。

參考

您可以在以下位置找到一些相關的討論:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM