我们最近用ChromeDriver www.example.com和Chrome www.example.com(官方版本)(64位)升级了我们的测试环境,升级后,即使是最小的程序也会产生大量这些严重的日志: v80.0.3987.16 and Chrome v80.0.3987.87 (Official Build) (64-bit) and after the upgradation even the minimal program is producing a lot of these SEVERE logs:
[1581082019.282][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.245][SEVERE]: Timed out receiving message from renderer: 0.100
早些时候,偶尔会观察到这些消息,直到使用ChromeDriver v79.0/Chrome v79.0组合。
最小代码块:
public class chromeDemo
{
public static void main(String[] args)
{
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver.quit();
}
}
控制台输出:
Starting ChromeDriver 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}) on port 9194
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Feb 07, 2020 6:56:57 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1581082019.282][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.245][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.430][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.531][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.632][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.734][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082020.835][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.364][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.544][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.647][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.748][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.850][SEVERE]: Timed out receiving message from renderer: 0.100
[1581082021.952][SEVERE]: Timed out receiving message from renderer: 0.100
有没有人面临同样的问题?chromedriver/chromev80相对于chromedriver/chromev79有没有什么变化?有什么线索吗?
4条答案
按热度按时间ep6jt1vc1#
临时解决方案
以下是针对不同类型 * Chrome * 用户的解决方案。
永久性溶液
但是,
@bugdroid
通过此revision/commit提交了实际修复,如下所示:历史
此错误消息...
......不一定表示故障。
正如@Tricia提到的那样,ChromeDriver版本80修改了一个等待循环,允许更多的重试;这个循环将产生那个消息,但是它继续监听。2然而,那个消息的 * SEVERE * 标记是误导的。
此外,在讨论Issue 3332: Retry timeout logged as severe时,@triciac [ChromeDriver委员会]还补充说,ChromeDriver团队增加了一个小超时(100 ms)到
DevToolsClientImpl::HandleEventsUntil
,以启用导航状态的附加检查。但是,不幸的是,当此超时到期时,它被记录为 * 严重 *(ProcessNextMessage
)。在此小超时的情况下,不应记录为 * SEVERE *,但SendCommandInternal
的超时仍应记录。因此ChromeDriver需要一种更好的方式来控制日志记录,可能是通过增加超时时间。但是,如果命令最终超时,列出的 * timeout * 持续时间非常小,则需要列出用户定义的超时时间。
即刻解决方案
作为临时解决方案,您可以降级到ChromeDriver v79.0.3945.36,因为控制台中似乎没有显示 * SEVERE * 日志,但您会看到 * WARNING *:
这听起来像是一个 *...安全的变通方案... *,并已得到 * chrome * 团队成员的确认。
时间;日期
您可以在以下位置找到一些相关讨论:
jaql4c8m2#
driver
脚本会等待页面完全加载。但有时webdriver加载页面需要更长的时间,在这种情况下,您会在控制台中看到TimeoutException
异常。下面的代码只是从页面加载html内容。您可以从chromeoptions设置页面加载策略
这些方法都没有帮助,但是我又找到了一个页面加载策略的解决方案。这次我们下载所有的子资源,但是我们在等待DOMContentLoaded事件。这个策略叫做Eager。这是所有3个可用的页面加载策略的一个小定义
正在端口41540上启动ChromeDriver 80.0.3987.16(320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185})仅允许本地连接。请保护ChromeDriver和相关测试框架使用的端口,以防止恶意代码访问。2020年2月11日10:22:12 AM org. openqa. selenium. remote. ProtocolHandshake createSession信息:检测到的方言:W3C [1581412933.937][严重]:从呈现器接收消息时超时:0.100 [1581412934.066][严重]:从呈现器接收消息时超时:0.100 [1581412934.168][严重]:从呈现器接收消息时超时:0.100 [1581412934.360][严重]:从呈现器接收消息时超时:0.100 [1581412934.461][严重]:从呈现器接收消息时超时:0.100 [1581412934.618][严重]:从呈现器接收消息时超时:0.100 [1581412934.719][严重]:从呈现器接收消息时超时:0.100 [1581412934.820][严重]:从呈现器接收消息时超时:0.100 [1581412934.922][严重]:从呈现器接收消息时超时:0.100 [1581412935.097][严重]:从呈现器接收消息时超时:0.100美元
在端口1175上启动ChromeDriver 80.0.3987.16(320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185})仅允许本地连接。请保护ChromeDriver和相关测试框架使用的端口,以防止恶意代码访问。2020年2月11日10:29:05 AM org. openqa. selenium. remote. ProtocolHandshake createSession信息:检测到的方言:W3C语言
21
ktca8awb3#
使用此行代码保留代码的第一个语句
如果你不去找莱恩斯
qzwqbdag4#
我曾经在C#项目中使用81.0.4044.13800版本的chrome驱动程序和selenium时遇到过同样的问题。更新到较新版本的驱动程序对我来说不起作用,进一步的启动参数也不起作用。
但由于这是一个日志问题,下面是对我有效的最终解决方案,如所述**here**: