【问题标题】:Selenium Java: Guarantee chromedriver.exe shutdown when program exitsSelenium Java:保证程序退出时关闭chromedriver.exe
【发布时间】:2019-09-22 18:10:51
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多