首页 > 解决方案 > 出现错误:服务器提前终止,在 selenium chrome 驱动程序中状态为 127

问题描述

当我尝试使用 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();

标签: node.jsselenium-webdrivermocha.jsselenium-chromedriverchai

解决方案


就我而言,我缺少一个 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,例如 chrome 60-62 用于 chromedriver 2.33
  4. 将 webdriver 配置为以“无头”模式启动 chrome,以避免其他不必要的依赖项。在节点中它看起来像:

    const options = new chromeDriver.Options();

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

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


推荐阅读