使用WebDriver单击新打开的选项卡中的链接

时间:2013-08-30 07:02:38

标签: java selenium webdriver selenium-webdriver

有人可以在这种情况下帮助我:

场景是:有一个网页,我只在新标签中打开所有指定的链接。现在我试图点击新打开的Tab中的任何一个链接。尝试在下面,但它只是点击主/第一个标签中的一个链接,而不是在新标签中。

new Actions(driver).sendKeys(Keys.CONTROL).sendKeys(Keys.NUMPAD1).perform();
driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL, Keys.TAB);
List<WebElement> links=driver.findElements(By.xpath("//a[contains(@href,'http')]"));
links.get(0).click();

1 个答案:

答案 0 :(得分:7)

您需要使用.switchTo(windowHandle);命令访问第二个标签页。

在打开第二个标签之前 - 获取打开标签的windowHandle:

String mainWindow = driver.getWindowHandle();

然后执行打开第二个标签的操作。现在,您需要知道第二个选项卡的句柄并将控制权切换到它:

Set<String> handles = driver.getWindowHandles();  
for (String handle : handles) {
    if (!handle.equals(mainWindow)) {
          driver.switchTo().window(handle);
          break;
    }
}

您对第二个标签的操作现在将在第二个窗口中发生。完成后,需要再次与第一个标签互动:driver.switchTo().defaultContent();