首页 文章

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

提问于
浏览
0

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

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

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

不确定为什么浏览器实例保持打开状态 . 谁能帮助我以更好的方式理解这个过程 .

Selenium版本2.40.0

3 回答

  • 0

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

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

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

    你试过driver.quit()吗?按照Java docs

    quit()
    Quits this driver, closing every associated window.
    
  • 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");
    

    希望能帮助到你

相关问题