2014-01-30 51 views
0

我已經採用的webdriver寫入一個測試的情況下,我關閉瀏覽器中的一種方法,並再次我打開瀏覽器不能夠調用問題用的webdriver測試用例

driver.close();我通過上述命令關閉瀏覽器再次打開瀏覽器我driver.get(url) 但我得到錯誤 「錯誤與遠程瀏覽器,它可能已經死了溝通」

+0

請提供代碼。這應該工作。除非你在驅動程序上調用了quit()。 –

回答

0

如果你真的想導航到新的URL之前關閉瀏覽器,然後執行:

driver.quit(); 
driver = new FirefoxDriver(); 
driver.get(url); 

但是,爲什麼你要在第一時間瀏覽到新的URL之前關閉瀏覽器?

我能想到的兩個或者一個原因:

  1. 你想要去與你的瀏覽器歷史記錄清理下一個URL。

    如果確實如此,那麼deleteAllCookies將完成這項工作。

  2. 您不能進入下一個URL,因爲某些彈出警報阻止了您這樣做。

    如果確實如此,那麼close不是quit都可以完成這項工作。

+0

我認爲這將是一個巨大的性能打擊! –

+1

OP在導航到新URL之前關閉瀏覽器的原因是什麼?我可以考慮以下兩種選擇中的任何一種:1.轉到具有清除歷史記錄的下一個URL(爲此,「deleteAllCookies」可以正常工作)。 2.一些彈出提示(爲此,既不'close'也不''將幫助)。 –

+0

+1進行評論。請用相同的方法更新POST。 –

0

那麼你殺了瀏覽器與driver.close(); 爲了使用驅動程序,您必須創建一個使用一些新的像driver = new FirefoxDriver(capabilities);

+0

「關閉」只關閉當前窗口不關閉驅動程序。 –

+1

@APaul不要忘記,如果只有一個瀏覽器窗口打開,'close()'試圖像'quit()'那樣操作。語義略有不同,特別是對於IE和Chrome,但是去Firefox,他們更接近於同樣的東西。在任何情況下,僅在打開一個瀏覽器窗口的情況下調用'close()'會使會話失效,並強制您創建一個新的瀏覽器實例。 – JimEvans

+0

+1 @JimEvans。我認爲大多數用戶並沒有使用多個窗口。 –

0

移動回答評論。

我想我得到了你的問題。儘管你已經調用了close(),它只能關閉當前窗口,但如果你想在多個窗口之間切換,你應該使用它。

對於你的情況只是不關閉驅動程序,它會使用相同的窗口來打開url。

0
You have to use following way if you want to close the current browser and open 
a new one:  

webDriver.Close(); 
//Goto the Target website 
WebDriver.Navigate().GoToUrl("url"); 

And you can use following way if you want to close the browser and kill the 
web driver: 

webDriver.Close(); 
webDriver.Quit(); 
相關問題