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

标签 selenium jenkins service window selenium-chromedriver

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

如果我们在没有 Windows 服务的情况下使用 jenkins 运行构建,它工作正常。我们仅在使用 Windows 即服务时遇到此问题

  • 我的 chrome 驱动版本:73.0.3683.68
  • Chrome 浏览器版本:73.0.3683.68
  • Selenium 版本: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
  • Chrome =73.0.3683.68
  • Windows 操作系统


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

    We have confirmed issues with take screenshot when Chrome 73.0.3686.75 is started by a service (such as Jenkins or Task scheduler) on Windows. Please see https://crbug.com/942023 for more details. We apologize for any inconvenience caused by this. However, we haven't yet been able to observe similar issue on Linux, so we appreciate any help you can provide to enable us to reproduce the issue on Linux. We don't have access to TeamCity, but we have tested take screenshot using Docker image produced by Selenium (selenium/standalone-chrome:3.141.59-lithium), and didn't find any problems.



    chromedriver73

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

    I am aware of some issues with running Chrome 73 from Jenkins. I don't know any workarounds. Please following https://crbug.com/942023 for updates.



    chromedriver73_and

    更新

    我们能够挖掘出主要问题。主要问题不在于 ChromeDriver v73.x 本身,而在于 Chrome v73.x 约翰正式确认为:

    The root cause is indeed in Chrome 73.x, not in ChromeDriver. We are working with Chrome devs to find a solution.



    chrome73_issue

    解决方案

    快速修复解决方案是:
  • 将 Chrome 浏览器降级到 Chrome v72.x
  • 在以下各项中使用匹配的 ChromeDriver:
  • ChromeDriver 2.46
  • ChromeDriver 72.0.3626.69

  • Note: If you are using Chrome version 72, please download ChromeDriver 2.46 or ChromeDriver 72.0.3626.69


  • 确保 JDK 升级到最新级别 JDK 8u202 .


  • 奥特罗

    您可以在以下位置找到相关讨论:
  • Page.captureScreenshot no longer works in Chrome 73 under Selenium as a Service on Windows
  • Error [SEVERE]: Timed out receiving message from renderer: 20.000 while executing the testsuite through Selenium on Jenkins
  • 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");
    

    关于selenium - 当我们使用 Jenkins windows 服务模式执行 selenium 脚本时,从渲染器 : 600. 000 接收消息超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373625/

    相关文章:

    javascript - 无法通过 FirefoxDriver 访问全局变量

    html - 无法 'tidy' html 文件

    git - Jenkins 无法识别 git 子目录

    macos - 使用 Slack 启动 Jenkins 构建

    android - iOS能像安卓一样接收广播吗?

    java - 如何使用 xpath 相对于通过 innerText 标识的另一个元素来定位一个元素

    selenium - 如何在下拉列表中滚动到隐藏元素?

    Jenkins 插件手动禁用构建步骤

    android - 中断 IntentService

    android - 即使应用程序关闭,也可以从后台服务更新 Activity 中的 textview