当前位置: 首页 > 面试题库 >

Selenium IEServerDriver找不到IE9的新窗口

慕容明煦
2023-03-14
问题内容

我正在使用Selenium WebDriver来自动化我的公司站点。一方面,Web应用程序通过以下方式打开一个新窗口:

<a onclick="WindowController.openWindow('quote.action?quoteProcessName=Shortform',WindowController.WINDOW_IS_TRACKED);" tabindex="1">Express Quote</a>

我们正在使用jQuery,尽管我认为这是自定义的。我在测试团队中,不做任何网站开发。无论如何,它使用JavaScript打开一个新窗口。脚本单击此链接后,我需要它附加到新窗口。

问题在于,在IE9中运行时,WebDriver似乎找不到新窗口。这是我用来尝试切换到新窗口的代码:

public boolean switchTo(final WebRobot robot, final String pageTitle) {
    boolean found = false;

    int count = 0;
    while (!found && count < 20) {
        final Set<String> handles = robot.getDriver().getWindowHandles();
        final Iterator<String> itr = handles.iterator();
        while (itr.hasNext()) {
            try {
                final String current = itr.next();
                robot.getDriver().switchTo().window(current);
                if (robot.getDriver().getTitle().contains(pageTitle)) {
                    robot.getLogger().debug("Switching to " + pageTitle);
                    found = true;
                }
            } catch (final NoSuchWindowException e) {
                count++;
                try {
                    Thread.sleep(2000);
                    System.out.println("Handles: " + robot.getDriver().getWindowHandles().size());
                } catch (final InterruptedException ignored) {
                    //Nothing to do here
                }
            }
        }
    }
    return found;
}

(WebRobot是我编写的一个类,允许我使用WebDriver轻松切换浏览器和执行模式。robot.getDriver()返回Selenium
WebDriver对象。)

新窗口打开后,robot.getDriver()。getWindowHandles()。size()始终为1。是否缺少我要拾取新窗口的内容?

此代码可在Firefox,Chrome和IE8(而非IE9)中完美运行。我正在使用64位版本的IEDriverServer,版本2.32.3.0。我正在使用Selenium
WebDriver 2.32,并且正在Windows 7 64bit上运行。


问题答案:

启用兼容模式可解决此问题。



 类似资料:
  • 我正在与Selenium WebDriver自动化我的公司网站。有一次,Web应用程序通过以下方式打开一个新窗口: 我们正在使用jQuery,尽管我认为这是定制的。我是测试团队的成员,不做任何网站的开发工作。无论如何,它使用JavaScript打开一个新窗口。脚本单击此链接后,我需要将其附加到新窗口。 问题是WebDriver在IE9中运行时似乎找不到新窗口。下面是我用来尝试切换到新窗口的代码:

  • 我正在运行一个selenium-webdriver javascript scraper,它登录到一个站点并单击一个按钮来启动一个新的选项卡/窗口。我正试图切换驱动程序以关注新生成的窗口,但Selenium找不到它。我要看的代码: 它是原始的浏览器窗口。是什么原因导致硒不能在新窗口上出现?

  • 使用https://stackoverflow.com/a/32407543/5379015中提供的解决方案,我尝试重新创建相同的查询,但使用编程语法代替API,如下所示: 第一个工作正常,但是结果是

  • 本文向大家介绍PyCharm 解决找不到新打开项目的窗口问题,包括了PyCharm 解决找不到新打开项目的窗口问题的使用技巧和注意事项,需要的朋友参考一下 在使用PyCharm或其他JetBrains系IDE过程中,偶尔会出现在新窗口打开一个新项目后,找不到新打开的窗口的情况。 尤其在使用双显示器情况下,出现的次数比较多。 但鼠标放任务栏ide图标上,还会出现预览窗口,如下图所示: 这是什么情况呢

  • 问题内容: 嗨,我正在我的reactJS项目中尝试使用react-rte。我有服务器端渲染,每当我想使用此软件包时,都会得到: 我想问题可能出在同构工具上,但我不知道如何将导入包延迟到已经定义了窗口的客户端。 问题答案: 如果要进行服务器端渲染,则很有可能全局窗口对象将是未定义的,因为这只是客户端会理解的内容。 注意: 最初,当您启动项目时,它将渲染出DOM的完整字符串(此时,由于它是服务器端,因

  • 所以我正在学习Selenium用于Java的测试自动化,我有一个错误消息,比如IntelliJ中的标题“windows()”是红色的。 我试图导入org.openqa.selenium.WebDriver。选项,但它是灰色的,所以没用。 我能做些什么来解决这个问题? 提前谢谢