新标签页中的 Selenium

Selenium in new tabs

我目前正在为 Web 平台进行 Selenium 测试,我注意到该测试在查找特定页面上的元素时存在问题,这会使测试失败。一旦测试按下一个按钮,就会出现问题,这会打开一个新选项卡,所以我的问题是发生这种情况的原因是由于 webdriver 被设置为网络浏览器中的第一个选项卡还是其他原因?

PS.The 如果驱动程序设置为从第二页开始,测试查找元素没有问题。

您的建议听起来很正确,要使用新选项卡,您必须将驱动程序切换到它。
这可以像这样简单地完成:

public void switchToNewWindow(){
    wait(500);
    List<String> tabs = new ArrayList<>(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(tabs.size()-1));
}

切换回第一个 window 你可以使用这个:

public void switchToFirstWindow(){
    List<String> tabs = new ArrayList<>(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(0));
}

如果有超过 2 个选项卡,您可以切换到任何选项卡,如上所示切换到具有相应索引的选项卡。

您必须切换到新选项卡,因为驱动程序只会找到实际的选项卡 WebElements。 使用以下命令切换到新标签:

ArrayList<String> tabs = new ArrayList<>(driver.getWindowHandles());
    driver.close(); //to close actual tab
    driver.switchTo().window(tabs.get(1)); //then switch to new tab