如何修复[警告]:连接到chrome时超时,正在重试

yh2wf1be  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(714)

我通过基于java的selenium循环访问网站。有些网站即时崩溃,所以我得到的错误

[1618982990.911][WARNING]: Timed out connecting to Chrome, retrying...

过了一会儿。
所以这不是 selenium 的问题,我想,因为即使chrome崩溃,如果我手动访问该网站,因为js错误,说无响应的网站
我的问题是,每当一个站点崩溃时,chromedriver和chrome示例都会保持活动状态,这样在很短的时间内我就有很高的cpu使用率。
如果示例被冻结,我可以告诉selenium退出吗?但我不知道这应该是怎么可能的,如果它没有得到答案从铬了?
感谢任何解决方案或想法

zour9fqk

zour9fqk1#

有时使用某些windows版本驱动程序。quit()不会终止我遇到的chrome进程。因此,如果driver.quit不起作用,那么在脚本结束时,可以使用java代码终止chrome进程(如果存在)。
请参考stackoverflow链接,如果java中存在该进程,则该链接包含终止该进程的代码,并将chrome进程传递给它。

x6492ojm

x6492ojm2#

我为任何有兴趣的人找到了一个解决办法。首先设置pageloadtimeout,然后在抛出异常时强制终止任何chrome示例。

try{
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
//some excecution code....
}

catch (Exception e) {
        System.out.println("Error. Closing");
        driver.quit();
        Runtime.getRuntime().exec("taskkill /F /IM chrome.exe");}

相关问题