Selenium IEServerDriver找不到IE9的新窗口

我正在与Selenium WebDriver合作,以自动化我的公司网站。 有一次,Web应用程序通过以下方式打开一个新窗口:

Express Quote 

我们正在使用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 handles = robot.getDriver().getWindowHandles(); final Iterator 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上运行。

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

newSet.removeAll(oldSet); newWindow = newSet.toArray()[0];

打开兼容模式解决了问题。