Selenium-Chrome-Headless:无法从渲染器接收消息

Posted

技术标签:

【中文标题】Selenium-Chrome-Headless:无法从渲染器接收消息【英文标题】:Selenium-Chrome-Headless : Unable to receive message from renderer 【发布时间】:2018-02-14 21:29:26 【问题描述】:

我正在使用 Chrome 最新稳定版61.0.3163.79 Chomedriver 2.31 硒 3.4.0 詹金斯和码头工人

我第一次运行 Jenkins 时遇到如下错误:

1.732][INFO]:等待未决导航完成。状态:断开连接:无法接收来自渲染器 [1.732] [DEBUG] 的消息: 开发工具请求:http://localhost:12059/json [1.733][调试]:开发工具 请求失败

有人可以帮我解决这个问题吗?

【问题讨论】:

你能添加你正在使用的代码吗?它将让我们所有人更好地了解,以更好地帮助您 你的代码在没有无头的情况下工作正常吗? 试试Mozilla Firefox in Headless Mode 这是我们第一次尝试 headless,之前我们使用的是 phantomjs ` chromeOptions.addArguments(dimension); chromeOptions.addArguments("--disable-gpu"); chromeOptions.addArguments("--no-sandbox"); chromeOptions.addArguments("--headless"); System.setProperty("webdriver.chrome.logfile", "target/chromedriver.log"); ChromeDriverService 服务 = new ChromeDriverService.Builder().withWhitelistedIps("").withVerbose(true).build(); driver = new ChromeDriver(service, chromeOptions); driver.get(域); ` 【参考方案1】:
chromeOptions.addArguments(dimension);
    chromeOptions.addArguments("--disable-gpu");
    chromeOptions.addArguments("--no-sandbox");
    chromeOptions.setBinary("/usr/bin/google-chrome");
    System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
    Logger.getLogger("org.openqa.selenium.remote").setLevel(Level.OFF);
    System.setProperty("webdriver.chrome.logfile", "target/chromedriver.log");
    ChromeDriverService service =
            new ChromeDriverService.Builder().withWhitelistedIps("").withVerbose(true).build();
    driver = new ChromeDriver(service, chromeOptions);
    driver.get(domain);

还在服务器上挂载卷: /dev/shm:/dev/shm

这解决了我的问题

【讨论】:

以上是关于Selenium-Chrome-Headless:无法从渲染器接收消息的主要内容,如果未能解决你的问题,请参考以下文章