我正在尝试从某些门户网站获取交易状态,并且我在我的 java 应用程序中使用以下 chrome 设置,并且我得到了
Timed out receiving message from renderer: 60.000
并且所有待处理的事务都超时。
session 信息: headless chrome=68.0.3440.75
驱动程序信息:chromedriver=2.38 (0)
platform=Linux 2.6.32-696.23.1.el6.x86_64 x86_64)
我该如何处理这个问题,如果发生超时,然后转到下一个事务?
我已经尝试了以下语句的所有排列和组合,但仍然不起作用;
options.addArguments("headless");
options.addArguments("disable-gpu");
WebDriver driver = new ChromeDriver(caps);
TimeUnit.SECONDS.sleep(1);
driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
最佳答案
此错误消息...
Timed out receiving message from renderer: 60.000
...意味着 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器 session 。
您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:
- 您正在使用 chromedriver=2.38
- chromedriver=2.38 的发行说明明确提到以下内容:
Supports Chrome v65-67
- 您正在使用chrome=68.0
- ChromeDriver v2.41 的发行说明明确提到以下内容:
Supports Chrome v67-69
- 我们不知道您的Selenium 客户端版本。
- 我们不知道您的JDK 版本。
因此,ChromeDriver v2.38 和 Chrome 浏览器 v68.0 之间存在明显的不匹配
解决方案
- 将 JDK 升级到最新级别 JDK 8u181 .
- 将Selenium升级到当前级别 Version 3.14.0 .
- 将ChromeDriver升级到当前的ChromeDriver v2.41级别。
- 将 Chrome 版本保持在 Chrome v67-69 级别之间。 (as per ChromeDriver v2.41 release notes)
- 通过 IDE清理您的项目工作区,并仅使用所需的依赖项重建项目。
- 执行您的
@Test
。
关于java - 从渲染器接收消息超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017854/