【问题标题】:How to open a new blank window using webdriver in java.如何在java中使用webdriver打开一个新的空白窗口。
【发布时间】:2013-04-26 13:18:17
【问题描述】:

我正在使用(Webdriver)driver.close(关闭浏览器而不是使用driver.quit)。 关闭浏览器窗口后,我无法使用 driver.get(url) - 这会引发 unreachableBrowserException。

作为一种解决方法,我正在尝试获取 windowHandles.size(),当它为零时,我想打开一个新的空白窗口,然后使用 driver.get(url)。

但我在 Webdriver 类中找不到任何打开空白窗口的方法。

【问题讨论】:

    标签: selenium webdriver driver


    【解决方案1】:

    使用下面的代码..无论您使用什么浏览器。在关闭当前浏览器会话后这样使用它。

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

    【讨论】:

    • 这会在我们每次使用 driver = new driver 时创建一个浏览器配置文件,这就是我们目前正在做的事情......它似乎效率低下。除了每次都创建新的驱动程序之外,还有什么其他方法可以关闭浏览器吗?
    • Web 驱动程序的行为仅如此。它不会像关闭浏览器并在同一个驱动程序会话中打开新浏览器一样工作。这里当浏览器关闭时,Web驱动程序中的驱动程序会话关闭,必须创建Web驱动程序的新实例。
    【解决方案2】:

    一旦退出,浏览器就消失了 - 你只剩下一个无法使用的 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.
    

    【讨论】:

    • 那么 driver.close() 有什么用 - 只是为了关闭浏览器窗口?它与 driver.quit() 基本相同。?
    • 当您测试应用程序时,它可以自行打开窗口,例如使用 JavaScript。在这些情况下,您将使用driver.switchTo().window() 切换到新打开的窗口。 driver.close() 关闭新打开的窗口,然后您将再次调用 driver.switchTo().window() 以返回上一个窗口。所以close() 关闭一个窗口,quit() 退出驱动程序,该驱动程序在此过程中关闭所有窗口并停止驱动程序的实例
    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2023-04-07
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多