我正在使用Selenium webdriver
,但是它不能正确退出chrome
和chrome
驱动程序。一些进程运行缓慢。
退出chrome的代码:
driver.quit();
启动chrome的代码:
System.setProperty("webdriver.chrome.driver","/<path to chrome driver>/chromedriver");
ChromeOptions options = new ChromeOptions();
options.setBinary(new File("/<path to chrome >/google-chrome"));
driver = new ChromeDriver(options);
Chrome驱动程序版本:2.9.248304 chrome 版本:40.0.2214.115 selenium 版本:2.32操作系统:Linux Java版本:1.7.0_71
先谢谢你奈良
8条答案
按热度按时间zvms9eto1#
您是否在finally块中执行驱动程序.quit()?
qnzebej02#
如果我使用,效果很好
pkln4tw63#
所以,没有什么工作对我来说。我最终做的是设置一个唯一的ID在我的addArguments启动chromedriver,然后当我想退出我这样做:
然后,为了确保它退出:
cs7cruho4#
我是这样解决的:
如果你不使用谷歌浏览器做其他事情,它是有用的。
3npbholx5#
1)获取驱动程序作为单示例
2)在finally块中使用Close和quit
结果:你一次只使用一个示例,如果你看到任务管理器,你不会发现chromedriver和chrome进程挂起。
pieyvz9o6#
在此场景中,您可以使用Web驱动程序的对象池模式,如下所示:
41zrol4v7#
对我来说,driver.quit()正在工作并杀死所有进程,这没有问题。但是每次我使用driver.close(),进程都会保留。如果我使用它10次,10个进程会留在后台进程中,直到我以编程方式或手动方式杀死它们。另外,driver.close()在运行程序结束时,大多数时候会发出一些警告,比如关闭浏览器后
[警告]:连接Chrome浏览器超时,正在重试...
66bbxpm58#
这个问题是与driver.quit()方法只为 chrome 。驱动程序退出工作不正常,它没有杀死所有进程的 chrome (包括子进程)。我做了什么。我改变了 selenium 罐代码,以解决这个问题,我的项目,不幸的是,我不能分享我的代码原因的项目规则,不允许分享任何类型的代码。