运行 chromeDriver 时,我使用 try/catch/finally 语句来确保如果发生任何异常,我的 WebDriver 将正确关闭。但是,如果抛出异常,这将非常有效;在用户强制退出我的应用程序的情况下,浏览器实例不会关闭。这可能会导致在后台运行不需要的 google chrome 线程。
当用户强制退出我的应用程序时,我如何确保浏览器关闭?
代码示例如下:
public class WebDriverTest {
WebDriver driver;
WebDriverWait wait;
public WebDriverTest() {
System.setProperty("webdriver.chrome.driver", "res/chromedriver");
driver = new ChromeDriver();
this.wait = new WebDriverWait(driver, 1);
}
public static void main(String[] args) {
WebDriverTest main = new WebDriverTest();
main.test();
}
private void test() {
try {
driver.get("https://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("test");
} catch (Exception e) {
e.printStackTrace();
} finally {
//If force quit the browser is never closed
driver.quit();
}
}
}
最佳答案
好吧,您似乎做对了,将 quit 放入 finnaly block 。
在测试结束时执行这个怎么样?
Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")
所以你可以杀死 chromedriver.exe。
关于java - 确保 ChromeDriver 在强制退出时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107266/