При запуске 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();
}
}
}