【问题标题】:Selenium in new tabs新标签中的硒
【发布时间】:2021-08-25 11:22:05
【问题描述】:

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

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

【问题讨论】:

  • 你在切换黑白标签吗?
  • 你是用java还是python作为你的编程语言?
  • 此时我只需要切换到下一个tab2。我是用 Java 做的

标签: java selenium testing tabs webdriver


【解决方案1】:

您必须切换到新选项卡,因为驱动程序只会找到实际的选项卡 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

【讨论】:

  • 无需关闭驱动程序,以防 OP 想要返回第一个选项卡并在那里完成工作
【解决方案2】:

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

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

要切换回第一个窗口,您可以使用:

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

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

【讨论】:

    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 2019-09-22
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多