从渲染器接收消息超时:600.000 当我们使用 Jenkins windows 服务模式执行 selenium 脚本时

2024-03-04

我们每天都使用 jenkins 窗口服务(无头模式)执行我们的 selenium 自动化脚本。直到昨天它都工作正常。突然它停止工作并且无法启动浏览器。它显示以下错误消息 [15536​​77874.187][严重]:从渲染器接收消息超时:600.000。之后所有剩余的测试用例都失败了。

如果我们使用 jenkins 运行构建,就像没有 Windows 服务一样,它工作得很好。我们仅在使用 Windows 即服务时遇到此问题

  • 我的chrome驱动版本:73.0.3683.68
  • Chrome浏览器版本:73.0.3683.68
  • 硒版本:3.14.0

我尝试过降级浏览器版本和驱动版本。即使它不起作用

我期望当我们使用 jenkins 作为 Windows 服务执行但收到错误消息时,浏览器应该在后台启动。

System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=C:\\1.13.4_0");
options.addArguments("--start-maximized");
options.addArguments("--ignore-certificate-errors");
options.addArguments("--disable-popup-blocking");
// options.addArguments("window-size=1400,600");
options.addArguments("enable-automation");
options.addArguments("--headless");
options.addArguments("--window-size=1920,1080");
options.addArguments("--no-sandbox");
// options.addArguments("--disable-extensions");
options.addArguments("--dns-prefetch-disable");
options.addArguments("--disable-gpu");
options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
DesiredCapabilities capabilities = 
DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, 
**strong text**options);
return new ChromeDriver(capabilities);

看来您正在使用以下配置:

  • chromedriver=73.0.3683.68
  • 铬=73.0.3683.68
  • Windows操作系统

John Chen(所有者 - chromedriver)最近证实,

我们已确认,当 Windows 上的服务(例如 Jenkins 或任务计划程序)启动 Chrome 73.0.3686.75 时,屏幕截图会出现问题。请参见https://crbug.com/942023 https://crbug.com/942023更多细节。对于由此造成的任何不便,我们深表歉意。但是,我们尚未能够在 Linux 上观察到类似的问题,因此我们感谢您提供的任何帮助,使我们能够在 Linux 上重现该问题。我们无法访问 TeamCity,但我们已经测试使用 Selenium (selenium/standalone-chrome:3.141.59-lithium) 生成的 Docker 映像进行屏幕截图,并且没有发现任何问题。


昨天(2019年3月26日),John再次确认:

我知道从 Jenkins 运行 Chrome 73 存在一些问题。我不知道任何解决方法。请关注https://crbug.com/942023 https://crbug.com/942023用于更新。


Update

我们能够挖掘出主要问题。主要问题不在于Chrome 驱动程序 v73.x如此但与Chrome v73.x约翰正式确认为:

根本原因确实是在 Chrome 73.x 中,而不是在 ChromeDriver 中。我们正在与 Chrome 开发人员合作寻找解决方案。


Solution

快速修复解决方案是:

  • 降级Chrome浏览器 to Chrome v72.x
  • Use a matching ChromeDriver among:
    • Chrome 驱动程序 2.46 https://chromedriver.storage.googleapis.com/index.html?path=2.46/
    • Chrome驱动程序72.0.3626.69 https://chromedriver.storage.googleapis.com/index.html?path=72.0.3626.69/

注意:如果您使用的是 Chrome 版本 72,请下载 ChromeDriver 2.46 或 ChromeDriver 72.0.3626.69

  • 确保这件事JDK升级到最近的水平JDK 8u202 https://www.oracle.com/technetwork/java/javase/downloads/index.html.

Outro

您可以在以下位置找到相关讨论:

  • Page.captureScreenshot 不再在 Windows 上的 Selenium 即服务下的 Chrome 73 中工作 https://bugs.chromium.org/p/chromium/issues/detail?id=942023
  • 错误 [严重]:在 Jenkins 上通过 Selenium 执行测试套件时,从渲染器接收消息超时:20.000 https://stackoverflow.com/questions/50051117/error-severe-timed-out-receiving-message-from-renderer-20-000-while-executin/50051844#50051844
  • 下载适用于所有操作系统的 Google Chrome 72 离线安装程序 https://www.itechtics.com/download-google-chrome-72-offline-installer-for-all-operating-systems/

更新(2019 年 4 月 3 日)

添加参数--disable-features=VizDisplayCompositor通过一个实例ChromeOptions()似乎解决了这个问题:

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-features=VizDisplayCompositor");
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从渲染器接收消息超时:600.000 当我们使用 Jenkins windows 服务模式执行 selenium 脚本时 的相关文章

随机推荐