gpt4 book ai didi

java - 如何确保我的程序生成的所有 Selenium Webdriver 在程序终止时都是 quit() ?

转载 作者:行者123 更新时间:2023-11-30 06:53:52 24 4
gpt4 key购买 nike

当我的程序以任何方式终止时,有什么方法可以确保所有新的 webdriver 实例都终止(即对它们调用一些相当于 driver.quit() 的方法)?也就是说,即使我忘记在代码中添加显式 .quit() ,或者程序崩溃/无法到达 ,也要确保新进程也会关闭.quit() 调用。

编辑:这是我想到的一个可能的解决方案,但我不确定它是否有效,不幸的是我现在无法亲自测试它。我可以创建一个工厂类来创建驱动程序,并将这些驱动程序存储在静态列表中。然后添加一个关闭钩子(Hook),对列表中的所有内容调用退出。我不知道这是否有效,因为我以前从未使用过关闭 Hook :P

最佳答案

首先,显然不要忘记添加显式的.quit()。始终将 phantomjs 驱动程序初始化包装到 try...finally 运算符中,并在 final block 中执行 .quit()。这应该保证 phantomjs 的所有进程都将完成。

一般来说,虽然没有通用的方法从 JVM 控制操作系统的外部进程,因为 phantomjs 在内部启动新的操作系统进程。你能做什么 - call from Java program OS-dependent command用于查找和终止 phantomjs 进程。比如说,对于 ubuntu 来说,它将是 pkill -f phantomjs:

(类似,但未测试)

java.lang.Runtime.getRuntime().exec("pkill -f phantomjs");

关于java - 如何确保我的程序生成的所有 Selenium Webdriver 在程序终止时都是 quit() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42183732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com