2013-07-10 27 views
0

我在Windows 7和IE9上使用Selenium 2.32,IEDriverServer 2.32,Eclipse,Java JDK 1.6.0_43。我用它来启动驱动程序的代码是IE 9 getWindowHandles - 不识别新的浏览器窗口

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()返回只有一个浏览器(父浏览器)和新的浏览器点击一个链接从未被识别。当我在IE 8中使用相同的代码时,它可以工作,并识别新的浏览器。

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

+0

它是一个通常的。点击元素后,我等待了8秒钟,新浏览器在8秒钟内完成加载,然后我使用了System.out.println(driver.getWindowHandles()。Size()); 上述代码返回1而不是2. – user2356679

+0

保护模式设置很可能是问题所在。你有没有(或者更重要的是,那些不让你在你的机器上设置这个基本无害设置的近视控制怪胎)阅读[明确的解释](http://jimevansmusic.blogspot.com/2012/08/youre描述_why_这些变化是必要的吗? – JimEvans

回答

0

步骤如下:

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