2014-03-26 125 views

回答

1

关闭浏览器:

try{ 
WebDriver driver = new InternetExplorerDriver(); 
.. write all the webdriver code here like driver.get, driver.findElement().click() etc. etc. 
} 
catch(Throwable webDriverException){ 
    if(webDriverException.getMessage().contains("org.openqa.selenium.WebDriverException: Error communicating with the remote browser. It may have died"){ 
     // Kill IEDriverServer.exe process 
     // Using WebDriver WindowUtils utility 
     WindowsUtils.killByName("IEDriverServer.exe"); 

     // Or using JavaRunTime 
    Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe") 
    } 

} 

看看这有助于!

+0

我想,只要浏览器是由用户关闭你的代码来执行。在webdriver中是否有任何浏览器关闭(X)事件? – user1254261

+0

在webdriver中可以使用关闭当前浏览器窗口的close()方法。为了关闭所有由webdriver打开的浏览器窗口,使用quit()方法。在编写close()/ quit()方法后使用上面的代码。稍微编辑了一下我的回复。 –

+0

如果我使用close()或quit()方法,那么它会自动关闭窗口。但我希望用户通过按浏览器关闭(X)按钮来关闭浏览器。 – user1254261

5

您可以在测试脚本的最后添加以下代码以关闭IE驱动程序。所以不需要手动关闭它。

try { 
    Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

否则打开记事本并粘贴下面的代码。

taskkill /F /IM IEDriverServer.exe 

将文件保存为closedriver.bat

点击当u要关闭IE驱动此批处理文件。

+0

嗨,试了上面的代码。但它不适合我。我尝试了你的尝试部分,但它并没有帮助我。你能给我提供其他编码级别的方法吗? 感谢 –

+0

查看任务管理器的驱动程序进程的名称。这可能是名称不同 – Sighil

+0

打字'TASKKILL/F/IM IEDriverServer.exe'到CMD工作就像一个魅力。谢谢! – DocAsh59