【问题标题】:Expiration for WebDrivers created by Java-EEJava-EE 创建的 WebDrivers 过期
【发布时间】:2018-10-18 12:31:51
【问题描述】:

我有一个带有 selenium ChromeDrivers 池的 Java Web 应用程序。这个池的存在是因为 REST api 的响应速度更快(无需每次都创建 WebDrivers)。

问题是,在 Tomcat 重启后 chromedrivers 仍然存在。

是否可以为每个进程设置一些过期时间?因为每次重新启动Tomcat时我都无法手动杀死进程。

或者也许用一些 守护进程配置 启动 chromedrivers 与 java 线程相同?

感谢您的任何回答:)

【问题讨论】:

    标签: java tomcat selenium-webdriver jakarta-ee webdriver


    【解决方案1】:

    您可以从您的 java 应用程序中杀死 chromedriver.exe 进程,如下所述: Killing a process using Java

    在我们的项目中,我们所做的就是完全杀死 chrome 驱动程序进程,以防止它影响新的运行。

    【讨论】:

    • 但我没有任何进程参考,因为应用程序重新启动。而且我不想每次都手动启动一些 .bat 文件。与 Linux 相同。
    • 我可以想到多种解决方案来解决如何从“手动”到“编程”。很可能您更清楚什么适合您的情况,但您可以 1. 创建一个服务器来监控您的应用程序的可用性,如果它关闭,它将调用 bat 文件来杀死 chrome 驱动程序 2. 您可以添加一些关闭挂钩您将在实际关闭之前调用的应用程序。更多信息可以在这里找到stackoverflow.com/questions/2921945/…
    • 是的,但是这个解决方案对于我们发布应用的系统来说并不熟悉。最好的方法是为 webDriver 进程设置一些过期时间,我担心这是不可能的。 :(
    • 我无法快速找到进程的“过期时间”的任何实现,但您仍然可以尝试通过 Java 使用 |超时后执行操作| 来实现它stackoverflow.com/questions/2258066/… 所以当你启动你的 chromedrivers 时,你可以添加一个 Timer 来调用一个函数来在一段时间后杀死它们。
    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多