必须将启用保护模式设置为所有区域的相同值(启用或禁用)

Dev*_*ave 4 c# selenium internet-explorer

我试图使用Selenium Internet Explorer驱动程序但是当我尝试实例化它时它会破坏:

[TestInitialize]
public void TestInitialise() {
  ieDriver = new InternetExplorerDriver();
}
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

必须将启用保护模式设置为所有区域的相同值(启用或禁用).(NoSuchDriver).

我发现一个明显的解决我的问题在这里,这表明设置驾驶员的DesiredCapabilities,如图所示:

var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities();
capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true);
IWebDriver webDriver = new InternetExplorerDriver(capabilitiesInternet);
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,我使用的是最新版本的,我能找到的驱动程序,并没有越权为InternetExplorerDriver这需要DesiredCapabilities作为一个参数.

现在有一些新的或其他的设置方式DesiredCapabilites而不是我使用的例子吗?

Arr*_*ran 7

该设置将解决问题,但会引入一些微妙的问题.你没有正确设置IE的保护模式吗?这是正确的解决方案.

这里的指南生活在这里:

https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

基本上只需在IE中为每个区域关闭保护模式.

或者,如果您真的必须使用覆盖功能,那么您要么做两件事:

使用该InternetExplorerOptions课程.注意属性的名称,它给你一个很大的线索,使用它不是一个好主意.

var options = new InternetExplorerOptions;
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
var driver = new InternetEplorerDriver(options);
Run Code Online (Sandbox Code Playgroud)

或者使用RemoteWebDriver,它可以接受任何ICapabilities接口的DesiredCapabilites实现,它实现:

var capabilities = new DesiredCapabilities("internet explorer", string.Empty, new Platform(PlatformType.Windows));
capabilities.SetCapability("ignoreProtectedModeSettings", true);
var webDriver = new RemoteWebDriver(capabilities);
Run Code Online (Sandbox Code Playgroud)