Java 如何修复[警告]:连接到Chrome时超时,正在重试
我通过基于Java的selenium以循环方式访问网站。有些网站会立即崩溃,所以我得到了错误信息Java 如何修复[警告]:连接到Chrome时超时,正在重试,java,selenium,web-scraping,selenium-chromedriver,Java,Selenium,Web Scraping,Selenium Chromedriver,我通过基于Java的selenium以循环方式访问网站。有些网站会立即崩溃,所以我得到了错误信息 [1618982990.911][WARNING]: Timed out connecting to Chrome, retrying... 过了一会儿 所以我认为这不是一个selenium问题,因为如果我因为js错误而手动访问该站点,即使是chrome也会崩溃,比如说无响应的网站 我的问题是,每当一个站点崩溃时,chromedriver和chrome实例都会保持活动状态,这样我在短时间内就会有很
[1618982990.911][WARNING]: Timed out connecting to Chrome, retrying...
过了一会儿
所以我认为这不是一个selenium问题,因为如果我因为js错误而手动访问该站点,即使是chrome也会崩溃,比如说无响应的网站
我的问题是,每当一个站点崩溃时,chromedriver和chrome实例都会保持活动状态,这样我在短时间内就会有很高的CPU使用率
如果实例被冻结,我可以告诉selenium退出吗?但我不知道如果它不再从chrome得到答案,这怎么可能呢
感谢有任何解决方案或想法有时使用一些Windows版本驱动程序。quit()不会杀死我遇到的chrome进程。 因此,在脚本结束时,如果driver.quit不起作用,您可以使用java代码终止chrome进程(如果存在)
请参考链接,如果Java中存在该进程,请使用该链接中的代码终止该进程,并将chrome进程传递给它。我为任何感兴趣的人找到了一个解决方法。首先设置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");}