Selenium webdriver IE 9 getWindowHandles-不识别新的浏览器窗口

Selenium webdriver IE 9 getWindowHandles-不识别新的浏览器窗口,selenium-webdriver,Selenium Webdriver,我在Windows7和IE9上使用Selenium 2.32、IEDriverServer 2.32、Eclipse、JavaJDK1.6.043。我用来启动驱动程序的代码是 File file = new File("IEDriverServer.exe"); System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); DesiredCapabilities ieCapabilities = DesiredCapabil

我在Windows7和IE9上使用Selenium 2.32、IEDriverServer 2.32、Eclipse、JavaJDK1.6.043。我用来启动驱动程序的代码是

File file = new File("IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);
在IE9中,当我单击打开新浏览器的链接时,driver.getWindowHandles()只返回一个浏览器(父浏览器),并且永远不会识别新浏览器。当我在IE8中使用相同的代码时,它可以工作,并且可以识别新的浏览器

由于公司政策,IE9中不同区域的“安全”设置不同。对于两个区域,“启用保护模式”已启用,而在其他区域中,该模式未启用。这就是问题的原因吗?。请建议。

步骤如下:

  • 应检查所有区域的“启用保护模式”和 安全级别应设置为“中等”
  • 给一些时间使用Thread.sleep()加载页面。现在你会的 获取getWindowHandles()方法的正确值

  • 这是平常的。单击元素后,我等待了8秒钟,新浏览器在这8秒钟内加载良好,然后我使用System.out.println(driver.getWindowHandles().Size());上面的代码返回1而不是2。保护模式设置很可能是问题所在。你(或者更重要的是,那些目光短浅的控制狂,他们不让你在你的机器上设置这个基本的无害设置)读过描述为什么这些更改是必要的吗?