2014-03-26 259 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