繁体   English   中英

Selenium Java:当程序退出时保证chromedriver.exe关闭

[英]Selenium Java: Guarantee chromedriver.exe shutdown when program exits

我在Java中使用Selenium来自动化Google Chrome 当我的程序退出时, chromedriver.exe实例将保留在内存中。 我知道我可以在例如finally块中使用driver.quit()来关闭当前实例。 但是,如果Java应用程序在任何时候被杀死(例如在调试会话期间),则当然不会执行此清理。

我正在寻找一种解决方案,使chromedriver.exe成为Java进程的子进程,因此当Java进程退出时,子进程也会自动死亡。 解决方案如Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe"); 杀死所有chromedriver.exe实例但这可能会chromedriver.exe系统上其他不理想的Selenium进程。 此外,这也不利于强行杀死该过程。

你可以使用“Selenium Grid” - 它每隔XXX个时间(默认为5分钟)有一个所有空闲会话的清理周期 - https://www.seleniumhq.org/docs/07_selenium_grid.jsp

这样,你的selenium服务器将负责调用driver.quit()[这是杀死你的进程的首选方法 - 即使你的Java程序被杀死, 也会从内存中释放Selenium chromedriver.exe

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM