【问题标题】:Source not available for newly opened window - Selenium Webdriver源不适用于新打开的窗口 - Selenium Webdriver
【发布时间】:2016-08-31 16:32:50
【问题描述】:

我正在尝试通过 Selenium 自动化 Web 应用程序。但在某个时候,我被卡住了。问题是当我打开一个页面并单击搜索(以加载所有现有的保存数据)时,会打开一个新窗口,其中 F12 选项不起作用,我也不能右键单击该窗口并选择查看源。如果我能得到那个窗口的来源,我可以使用窗口句柄。谁能帮我解决这个问题?

【问题讨论】:

  • 你能分享一些你正在尝试的代码吗?

标签: selenium selenium-webdriver


【解决方案1】:

在我的项目中,我在弹出窗口中使用了这样的东西:

public void switchToWindowOtherThan(String windowHandle) {

        try {
            for (String handle : driver.getWindowHandles()) {

                if (!handle.equals(windowHandle)) {
                    driver.switchTo().window(handle);
                }
            }
        } catch (NoSuchWindowException nwe) {
            //handle exception
        }
    }

在我的代码中,我会按如下方式使用它:

switchToWindowOtherThan(driver.getWindowHandle());

【讨论】:

  • 我试过这个..但没有成功。它从旧窗口本身返回值.. 这里打开了一个新窗口,我无法获取该特定窗口或元素的源代码.. 这就是问题... 对于普通窗口.. 如果我按 F12,我会得到源代码,但这里不是场景..
  • 各位朋友,您好,找到了解决办法。是Internet explorer 的问题。我刚刚更新了版本,现在源跟踪工作正常。谢谢您的回复。