当前位置: 首页 > 知识库问答 >
问题:

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打开一个新窗口。脚本单击此链接后,我需要将其附加到新窗口。

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

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对象。)

在新窗口打开后,机器人。getDriver()。getWindowHandles()。size()始终为1。有没有什么东西我没找到去拿新窗户?

这段代码在Firefox、Chrome和IE8中运行得很好,但在IE9中却不行。我使用的是64位版本的IEDriverServer,版本为2.32.3.0。我使用的是SeleniumWebDriver 2.32,运行在64位Windows 7上。

共有2个答案

孟鸿德
2023-03-14

打开兼容性模式修复了该问题。

屠嘉
2023-03-14

http://grokbase.com/t/gg/webdriver/128hgbmcw0/getwindowhandles-return-only-1-window-in-ie

新闻网。移除所有(旧集);newWindow=newSet。toArray()[0];

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

  • 我正在运行一个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。选项,但它是灰色的,所以没用。 我能做些什么来解决这个问题? 提前谢谢