簡體   English   中英

出現錯誤:服務器在 selenium chrome 驅動程序中提前終止,狀態為 127

[英]getting error : Server terminated early with status 127 in selenium chrome driver

當我嘗試使用 chrome 驅動程序進行單元測試時,出現錯誤: Server terminated early with status 127 ,我已安裝 chrome 驅動程序仍然出現錯誤。 誰能幫助我為什么會遇到這個問題。 這是我的代碼,

let webdriver = require("selenium-webdriver");
        let chromeOptions = new chrome.Options();
        chromeOptions.addArguments("test-type");
        chromeOptions.addArguments("start-maximized");
        chromeOptions.addArguments("--js-flags=--expose-gc");
        chromeOptions.addArguments("--enable-precise-memory-info");
        chromeOptions.addArguments("--disable-popup-blocking");
        chromeOptions.addArguments("--disable-default-apps");
        chromeOptions.addArguments("--disable-infobars");

        driver = new webdriver.Builder()
          .forBrowser("chrome")
          .setChromeOptions(chromeOptions)
          .build();

就我而言,我缺少 Java 運行時環境 (JRE)。 我正在基於 Debian 的 docker 映像中使用 Selenium 運行 e2e 測試,因此sudo apt-get install default-jre對我有用。 遺憾的是 selenium 在這種情況下沒有給出更有用的錯誤信息。


按照步驟:-

  1. apt-get install default-jre
  2. apt-get -f install進行修復安裝
  3. apt-get install chromium-browser確保安裝與您的 chromedriver 相關的正確版本的 chrome,例如 chromedriver 2.33 的 chrome 60-62
  4. 將 webdriver 配置為以“無頭”模式啟動 chrome,以避免其他不必要的依賴項。 在節點中它看起來像:

    const options = new chromeDriver.Options();

    options.addArguments( 'headless', 'disable-gpu', );

    new webdriver.Builder().forBrowser('chrome').setChromeOptions(options).build();

如果這里有人試圖在 Azure vm 上運行無頭鉻實例,您將需要:

  • Java JRE (apt: java-common)
  • Chromium - 即使您的代碼中的依賴項包含它(apt:chromium-chromedriver)

或者(對於虛擬環境),您可以按照此處所述設置 xvfb 但是,如果你只安裝 apt,你會為自己節省很多時間。

我在這里花了幾個小時來解決這個問題,直到它起作用,希望它對未來的人有所幫助。

我的具體用例是在 Azure 實例上運行的 Node.js 服務器(我認為是 b2ms?機器大小.. 它是 15 美元/月)運行 Z3D945423F8E9496C429A5D8C604FZ 每分鍾 18 分鍾查詢某個感興趣的網站。

暫無
暫無

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

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