2017-12-10 1 views
0

私は、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を手動で終了した後に終了するには、より良い方法がありますか?

答えて

0

Uは、このソリューションはあなたを助けるかもしれない ...

+0

ありがとうございます。しかし、ドライバをやめて問題を継続するのには時間がかかりすぎるという問題は解決しません。 –

0

ブラウザ.quitまたはbrowser.close機能をブロックし、最終的にdriver.quitを呼び出すか、.kill機能を使用してクロムプロセッサを殺す.. することができます...

+0

これらのメソッドは、ウィンドウが閉じるとすぐに呼び出すことはできません。 –

関連する問題