测试结束后强行关闭WebDriver实例

时间:2014-03-10 04:00:11

标签: java selenium-webdriver webdriver

通常在我的测试失败后,浏览器实例保持打开状态。 我确保调用quit()方法@AfterSuite结束,有时仍然是由于弹出或不确定浏览器实例未关闭。以下是我在每个Test Suite结束后调用的示例代码

if (_driver.getWindowHandles().size() > 1) {
    _driver.close();
}
if (isAlertPresent()) {
    getAlert();
}
_driver.quit();
if (isAlertPresent()) {
    getAlert();
}

其中,我首先检查是否有更多窗口要关闭,我先关闭它们并在关闭窗口后出现弹出窗口我接受该警告框,然后我尝试调用退出方法。

不确定为什么浏览器实例保持打开状态。任何人都可以帮助我以更好的方式理解这个过程。

Selenium Version 2.40.0

3 个答案:

答案 0 :(得分:0)

方法调用driver.quit()之后的任何内容都是死代码。

要处理打开的窗口,您需要尝试以下代码,

 Set windows=driver.getWindowHandles();
 Iterator windowiterator=windows.iterator();
 while(windowiterator.hasNext())
 {
    windowiterator.next().close();
    //handle your pop up here, if any. 
 }

答案 1 :(得分:0)

您是否尝试过driver.quit()。根据Java docs

quit()
Quits this driver, closing every associated window.

答案 2 :(得分:0)

有时我遇到同样的问题。

我使用CMD终止浏览器任务。我知道这很难,但对我有用

Process p = Runtime.getRuntime().exec("cmd /c Taskkill /IM IEDriverServer.exe /F");
Process p = Runtime.getRuntime().exec("cmd /c Taskkill /IM chromedriver-win.exe /F");

希望有所帮助