java - Selenium Java : Guarantee chromedriver. exe 程序退出时关闭

标签 java selenium automated-tests selenium-chromedriver zombie-process

我正在使用Selenium使用 Java 来自动化 Google Chrome。当我的程序退出时,内存中会留下一个 chromedriver.exe 实例。我知道我可以在例如中使用 driver.quit()用于关闭当前实例的finally block 。但是,如果 Java 应用程序在任何时候被终止(例如在调试 session 期间),则当然永远不会执行此清理操作。

我正在寻找一种解决方案,使 chromedriver.exe 成为 Java 进程的子进程,这样当 Java 进程退出时,子进程也会自动终止。像 Runtime.getRuntime().exec("taskkill/F/IM chromedriver.exe"); 这样的解决方案会杀死所有 chromedriver.exe 实例,但这可能会扰乱系统上的其他 Selenium 进程,这并不理想。此外,这也不会阻止强制终止进程。

最佳答案

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

这样,您的 selenium 服务器将负责调用 driver.quit() [这是终止进程的首选方法 - release Selenium chromedriver.exe from memory即使您的 Java 程序被终止。

关于java - Selenium Java : Guarantee chromedriver. exe 程序退出时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55982636/

相关文章:

java - 什么是NullPointerException,我该如何解决?

java - 如何创建包含多个单个字母的随机长度字符串?

javascript - selenium phantomjs 无法抓取网站机器人检测

ajax - 如何在ajax请求中使用jmeter

python - 上传文件 - 使输入可见(错误 : ElementNotVisibleException)

java - 这是指向类还是类实例? (6)

java - Spring 表达式语言 (SpEL) : check empty string?

java - Java中的 Selenium : Not able to locate element on Amazon

html - Selenium:如何找到具有特定内容的div?

node.js - Node/Chai 测试循环递归