私は、JavaでSelenium WebDriver(ChromeDriver)を実行して、ユーザーの入力を必要とする基本的な自動化を行っています。ユーザーはいつでもウィンドウのクローズ(赤いX)ボタンをクリックすることができます。これはdriver.quit()
を呼び出してドライバを適切に終了せず、バックグラウンドで実行して、WebDriverException
を投げてしまいます。これは起こりたくありません。私は、ブラウザウィンドウアクションのイベントリスナーがないことを認識しています。ウィンドウを手動で閉じると、Selenium ChromeDriverを正しく終了させるにはどうすればよいですか?
WebDriver driver = null;
try {
driver = new ChromeDriver();
//do more stuff here
WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(
//waiting conditions
);
} catch (WebDriverException e) { //thrown after can't reach browser (browser closed)
//handle exception
} finally {
if (driver != null)
driver.quit();
}
//continue with non-WebDriver parts of program
は、しかし、私はすぐに移動するためのプログラムを必要とし、例外がスローされるため、ウィンドウを閉じた後、それは多くの場合、数秒かかります:私はこれをやってみました。また、この方法は、とにかくプログラミングが悪いと感じるだけです。
ChromeDriverを手動で終了した後に終了するには、より良い方法がありますか?
ありがとうございます。しかし、ドライバをやめて問題を継続するのには時間がかかりすぎるという問題は解決しません。 –