【问题标题】:NoSuchWindowException when trying to get a report inside a new window尝试在新窗口中获取报告时出现 NoSuchWindowException
【发布时间】:2016-09-29 07:31:13
【问题描述】:

我的代码中有以下内容:

withWindow({ title == 'Google' }) {
    report "08"
}

报告将我引向异常NoSuchWindowException。我检查了这是否是窗口选择器的问题,但不是,经过一番研究,我猜测问题是驱动程序弄乱了,所以我存储并切换了我的驱动程序:

String  mainHandle= driver.getWindowHandle();
driver.switchTo().window('Google');

但我一直收到同样的错误。所以我尝试了:

driver.get("http://www.google.com");

它正在工作,但我需要动态地自动执行此操作,因为我们正在使用的窗口和弹出窗口有数百个并且具有不同的标题。

如何在每个打开的窗口中实现这一点?我们正在使用外部工具生成代码,所以我不需要做“魔术”,只有 driver.get.windowUrl 或类似的东西对我有用,我稍后会添加并发。

【问题讨论】:

    标签: selenium testing groovy geb


    【解决方案1】:

    如果你想获取最后打开的窗口句柄,你可以这样做:

    public String getLastWindowHandle() {
        Set<String> windows = webDriver.getWindowHandles();
        Iterator<String> itera = windows.iterator();
        String window = null;
        while (itera.hasNext()) {
            window = itera.next();
        }
        return window;
    }
    

    有了这个句柄,你可以切换到新窗口:

    webDriver.switchTo().window(getLastWindowHandle());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 2016-03-16
      相关资源
      最近更新 更多