2013-04-26 175 views
1

我正在使用(Webdriver)driver.close(關閉瀏覽器而不是使用driver.quit)。 關閉瀏覽器窗口後,我無法使用driver.get(url) - 它引發unreachableBrowserException。如何在java中使用webdriver打開一個新的空白窗口。

作爲一種解決方法,我試圖獲取windowHandles.size(),當它爲零時,我想打開一個新的空白窗口,然後使用driver.get(url)。

但我沒有找到任何方法在Webdriver類中打開空白窗口。

回答

0

使用下面的代碼..你用什麼瀏覽器。在關閉當前瀏覽器會話之後使用它。

driver = new InternetExplorerDriver()/firefoxdriver(); 
driver.get("Url"); 
+0

這會在每次使用driver = new driver時創建一個瀏覽器配置文件,這正是我們目前正在做的......看起來效率低下。任何其他關閉瀏覽器的方式,而不是每次都創建一個新的驅動程序? – Praharshit 2013-04-26 16:41:56

+0

Web驅動程序的行爲僅限於此。它不會像關閉瀏覽器並在同一個驅動程序會話中打開新瀏覽器那樣工作。這裏當瀏覽器關閉意味着,驅動程序會話在網絡驅動程序被關閉,並且必須創建新的Web驅動程序實例。 – 2013-04-29 10:26:39

0

一旦退出,瀏覽器不見了 - 剩下的driver實例不可用。

除非您聲明一個新實例並將其重新分配給它。例如:

driver.findElement(By.id("a"); // doing something 
driver.Quit(); // test is over, closing the browser 
driver = new FirefoxDriver(); // you will need to give it a new driver to work with. 
+0

那麼driver.close()有什麼用 - 只是關閉瀏覽器窗口?它基本上與driver.quit()相同。 – Praharshit 2013-04-26 16:39:10

+1

在測試應用程序時,它可以自行打開窗口,例如使用JavaScript。在這些情況下,您將使用'driver.switchTo()。window()'切換到新打開的窗口。 'driver.close()'關閉新打開的窗口,然後再次調用'driver.switchTo()。window()'返回到上一個窗口。所以'close()'關閉一個窗口,'quit()'退出在進程關閉所有窗口並停止驅動程序實例的驅動程序 – ragamufin 2013-04-26 18:37:52