【问题标题】:Timed out receiving message from renderer: 10.000从渲染器接收消息超时:10.000
【发布时间】:2020-04-25 01:45:01
【问题描述】:

我在运行我的场景时遇到以下错误。

org.openqa.selenium.TimeoutException: timeout: 接收超时 来自渲染器的消息:10.000

(会话信息:chrome=79.0.3945.79)构建信息:版本:'3.14.0', 修订:'aacccce0',时间:'2018-08-02T20:19:58.91Z' 系统信息: 主机:'fv-az598',ip:'10.1.0.4',os.name:'Linux',os.arch:'amd64', os.version:“4.15.0-1064-azure”,java.version:“1.8.0_212”驱动程序 信息:org.openqa.selenium.remote.RemoteWebDriver 功能 {acceptInsecureCerts: false, browserName: chrome, browserVersion: 79.0.3945.79,铬:{chromedriverVersion:79.0.3945.36

如您所见,使用粗体突出显示的字体,我确实有 chrome 和 chrome 驱动程序的匹配版本。

我还向我的 ChromeOptions 传递了一些参数,这意味着超时的帮助:

        // options to prevent TIMEOUTS
        options.addArguments("start-maximized"); //https://stackoverflow.com/a/26283818/1689770
        options.addArguments("enable-automation"); //https://stackoverflow.com/a/43840128/1689770
        options.addArguments("--no-sandbox"); //https://stackoverflow.com/a/50725918/1689770
        options.addArguments("--disable-infobars"); //https://stackoverflow.com/a/43840128/1689770
        options.addArguments("--disable-dev-shm-usage"); //https://stackoverflow.com/a/50725918/1689770
        options.addArguments("--disable-browser-side-navigation"); //https://stackoverflow.com/a/49123152/1689770
        options.addArguments("--disable-gpu"); //https://stackoverflow.com/questions/51959986/how-to-solve-selenium-chromedriver-timed-out-receiving-message-from-renderer-exc
        options.addArguments("--disable-features=VizDisplayCompositor"); //https://stackoverflow.com/questions/55373625/getting-timed-out-receiving-message-from-renderer-600-000-when-we-execute-selen

编辑:在 DOCKER 容器中运行时会发生这种情况(使用 chrome 浏览器的最新 docker 图像和 node-chrome-debug)

任何想法将不胜感激。

【问题讨论】:

  • 能详细点吗?因为可以联网,也可以试试让线程休眠
  • @Matthewek 您能否将您的 Chrome 浏览器升级到当前的...版本 79.0.3945.88(官方版本)...
  • @DebanjanB - 抱歉,我没有提到(现在已编辑帖子)当我在 docker 中运行它们时会发生这种情况,对所有服务(浏览器和 chrome 驱动程序)使用最新的图像,所以我使用的是最新的(最新可用的)泊坞窗图像。谢谢。

标签: java selenium docker google-chrome selenium-chromedriver


【解决方案1】:

这是因为您将页面加载超时设置为 10 秒 例子

driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

将此处的 10 更改为任何其他数字以查看超时增加

如果不需要,删除该行

【讨论】:

    【解决方案2】:

    此错误消息...

    org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: 10.000
    

    ...暗示 ChromeDriver 无法启动/产生新的 Browsing ContextChrome Browser 会话。

    您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

    • 您的 Selenium Client 版本是 2018-08-02T20:19:58.91Z3.14.0,几乎是 1.5 岁,并发 ChromeDriver 兼容 OSS
    • 您正在使用 chromedriver=79.0
    • 您正在使用 chrome=79.0
    • 虽然 chromedriver=79.0chrome=79.0 是并发的,但它们与 Selenium Client 版本不兼容 3.14.0。

    因此 Selenium Client v3.14.0ChromeDriver v79.0Chrome 浏览器 v79.0 之间存在明显的不匹配p>


    解决方案

    确保:

    • JDK 升级到当前级别JDK 8u222
    • Selenium 升级到当前级别 Version 3.141.59
    • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。

    tl;博士

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

    【讨论】:

    • 感谢您的详细回答,确实我的 selenium 版本已经过时并且它是促成因素,将 selenium 更新到版本 3.141.59 最初并没有帮助,但将它与正在传递的其他 ChromeOptions 结合起来(--disable -features=NetworkService, --dns-prefetch-disable, --disable-extensions) 现在一切正常,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 2020-07-26
    • 2021-06-17
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多