0

我在 Windows 7 和 IE9 中使用 Selenium 2.32、IEDriverServer 2.32、Eclipse、Java JDK 1.6.0_43。我用来启动驱动程序的代码是

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 中不同区域的“安全”设置不同。对于两个区域,启用“启用保护模式”,而在其他区域中,该模式未启用。这是问题的原因吗?请建议。

4

1 回答 1

0

步骤如下:

  1. 应检查所有区域的“启用保护模式”,并且应将安全级别设置为“中”。
  2. 给一些时间使用 Thread.sleep() 加载页面。现在您将获得 getWindowHandles() 方法的正确值。
于 2018-01-19T09:01:16.437 回答