在不知道网址Selenium webDriver的情况下打开新的网址窗口

时间:2015-07-06 13:28:39

标签: c# selenium automation

在所有Selenium cod示例中,如果我想要打开webdriver特定网站页面就像这样

  

`chromeDriver.Navigate()GoToUrl(站点名);

但是现在我遇到一个问题,当我点击网页时我正在测试它的开放新网站(第3个网站)并且我无法提前知道URL。 所以任何人都知道,我怎么知道打开的新页面中的URL是什么?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

试试这个:

driver.get("https://stackoverflow.com");
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//*[@id='nav-tags']"))).sendKeys(Keys.SHIFT).click().build().perform();

// You have opened your unknown site in a new window till now

String currentWindowHandle = driver.getWindowHandle();
ArrayList < String > windowHandles = new ArrayList < String > (driver.getWindowHandles());
    for (int i = 0; i < windowHandles.size(); i++) {
    if (windowHandles.get(i).equals(currentWindowHandle)) {

        //SwitchTo new Window
        driver.switchTo().window(windowHandles.get(i + 1));

        //Do your stuff like get URL that tou need
        System.out.println(driver.getCurrentUrl());
        System.out.println(driver.getTitle());

        //Close the newly opened window
        driver.close();
    }
}
driver.switchTo().window(currentWindowHandle);

这将在新窗口中打开标签窗口并获取该窗口的URL,假设这是您想要的。