【问题标题】:unknown error: Chrome failed to start: crashed(selenium ,headless mode)未知错误:Chrome 无法启动:崩溃(硒,无头模式)
【发布时间】:2017-11-19 04:27:45
【问题描述】:

我在执行过程中有这段代码和一个问题(代码下的描述)

   try {
        ChromeOptions options = new ChromeOptions();
        options.setBinary("/usr/bin/chromium-browser");
        options.addArguments("--start-maximized");
        options.addArguments("headless");
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();

        capabilities.setBrowserName("chrome");
        capabilities.setPlatform(Platform.LINUX);

        capabilities.setCapability(ChromeOptions.CAPABILITY, options);
        WebDriver driver = null;

        // here throws exception
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub"), capabilities);
    }catch (Exception ex){
        int point = 0;
    }

我使用:

  1. Ubuntu 14.04.5 LTS
  2. selenium-server-standalone-3.7.1
  3. 依赖 org.seleniumhq.selenium:selenium-java:3.7.1
  4. ChromeDriver(适用于 Linux 64)
  5. 铬(而不仅仅是铬)
  6. xvfb

当我创建 RemoteWebDriver 时出现此错误: 异常:未知错误:Chrome 无法启动:崩溃

启动 selenium-server 的命令

DISPLAY=:1 xvfb-run java  -Dwebdriver.chrome.driver="/home/builds/chromedriver" -jar /home/builds/selenium-server-standalone-3.7.1.jar

该方案的哪些部分可能是所描述的错误的原因?

【问题讨论】:

  • 查看 chrome 崩溃日志。猜测一下:你是无头的和最大化的。这很可疑。

标签: java linux google-chrome selenium-webdriver


【解决方案1】:

首先,您输入的所有参数对于 headless 都是错误的。

这是--headless 不是headless

使用下面的代码

options.addArguments("--headless");

另一件事你必须通过System.setProperty,如下所示:

 System.setProperty("webdriver.chrome.driver","E:\\Selenium\\src\\libs\\chromedriver.exe");

在我这边工作正常的代码是:

         try {
             System.setProperty("webdriver.chrome.driver","E:\\Selenium\\Workplace\\Selenium\\src\\libs\\chromedriver.exe");
                ChromeOptions options = new ChromeOptions();
            //    options.setBinary("/usr/bin/chromium-browser");
                options.addArguments("--start-maximized");
                options.addArguments("--headless");
                DesiredCapabilities capabilities = DesiredCapabilities.chrome();

                capabilities.setBrowserName("chrome");
                capabilities.setPlatform(Platform.WINDOWS);

                capabilities.setCapability(ChromeOptions.CAPABILITY, options);
                WebDriver driver =  new ChromeDriver(capabilities);
                driver.get("http://google.com");


            }catch (Exception ex){
                int point = 0;
            }

    }

【讨论】:

    猜你喜欢
    • 2014-10-08
    • 2023-01-19
    • 2018-02-07
    • 2022-12-17
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    相关资源
    最近更新 更多