9

我在 Visual Studio 中的代码使用的是 selenium webdriver 2.24.0。我正在使用的测试框架是 Nunit。在 2.24.0 版本发布之前,我的代码运行良好(加载不同的浏览器、驱动网站)。

我将新的 IE 独立服务器添加到我的项目中。

现在,每当我运行我的代码时,NUnit 都会遇到此错误消息。

 FirstSeleniumTest.SeleniumTest.TestGoogle:
SetUp : System.InvalidOperationException : Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)
TearDown : System.NullReferenceException : Object reference not set to an instance of an object.

然后命令提示符弹出这个。

Started InternetExplorerDriver server (64-bit)
2.24.0.0
Listening on port 50329

我在我的 IE 上禁用了保护模式。仍然没有运气。

我怎样才能让我的代码恢复到正确的网络驱动?

4

4 回答 4

16

您应确保为所有4 个安全区域(Int​​ernet、本地 Intranet、受信任站点、受限制站点)启用或禁用保护模式。换言之,所有安全区域的设置值应该相同。

于 2012-06-20T16:26:49.673 回答
15

只是为了添加到已经正确的答案,如果将所有值设置为相同不是一个选项,(需要禁用安全性是某些区域,但希望在其他区域保持启用安全性)您还可以使用包含的重载初始化驱动程序InternetExplorerOptions,并且利用

new InternetExplorerOptions() { IntroduceInstabilityByIgnoringProtectedModeSettings = true}
于 2013-07-18T12:31:51.923 回答
6

您需要将每个区域的保护模式设置设置为相同的值。阅读:http ://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration

于 2012-06-21T06:33:51.800 回答
2

我同意 Alexander 的说法,但是如果您的公司不允许您对 IE 设置进行任何更改怎么办。


以下对我有用:

    File file = new File("M:\\dev\\ria\\iedriver\\2.42.0\\install\\exec\\IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

    DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
    caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);  
    caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

    WebDriver driver = new InternetExplorerDriver(caps);
    driver.get("http://www.google.com");
于 2014-10-09T14:14:14.737 回答