通常在我的测试失败后,浏览器实例保持打开状态。
我确保调用quit()
方法@AfterSuite结束,有时仍然是由于弹出或不确定浏览器实例未关闭。以下是我在每个Test Suite结束后调用的示例代码
if (_driver.getWindowHandles().size() > 1) {
_driver.close();
}
if (isAlertPresent()) {
getAlert();
}
_driver.quit();
if (isAlertPresent()) {
getAlert();
}
其中,我首先检查是否有更多窗口要关闭,我先关闭它们并在关闭窗口后出现弹出窗口我接受该警告框,然后我尝试调用退出方法。
不确定为什么浏览器实例保持打开状态。任何人都可以帮助我以更好的方式理解这个过程。
Selenium Version 2.40.0
答案 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");
希望有所帮助