【发布时间】:2015-07-06 13:28:38
【问题描述】:
在所有 Selenium 鳕鱼示例中,如果我想打开 webdriver 特定的网站页面,它会像这样
`chromeDriver.Navigate().GoToUrl(站点名);
但现在我有一个问题,当我点击网页时,我正在测试其打开的新网站(第 3 方网站),但我无法提前知道 URL。 所以有人知道,我怎么知道打开的新页面中的 URL 是什么?
【问题讨论】:
标签: c# selenium automation
在所有 Selenium 鳕鱼示例中,如果我想打开 webdriver 特定的网站页面,它会像这样
`chromeDriver.Navigate().GoToUrl(站点名);
但现在我有一个问题,当我点击网页时,我正在测试其打开的新网站(第 3 方网站),但我无法提前知道 URL。 所以有人知道,我怎么知道打开的新页面中的 URL 是什么?
【问题讨论】:
标签: c# selenium automation
【讨论】:
试试这个:
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,假设这就是您想要的。
【讨论】: