当使用Selenium Webdriver时,我使用InternetExplorerDriver得到以下错误-“启动In

本文关键字:错误 启动 In InternetExplorerDriver Webdriver Selenium | 更新日期: 2023-09-27 18:05:49

我正在尝试在c#中实例化InternetExplorerDriver,每次我这样做时,我都会得到以下错误消息:

系统。InvalidOperationException:启动Internet Explorer时出现意外错误。所有分区的"保护模式"必须设置为相同的值(启用或禁用)。(NoSuchDriver)

现在我不确定如何整理这个,但是触发错误的代码行是:

IWebDriver driver = new InternetExplorerDriver();

InternetExplorerDriver的文档建议我可以在一个重载构造函数中传递一个ICapabilities对象,但它只具有BrowserName, IsJavaScriptEnabled, PlatformVersion的属性。这些似乎都不能说明他们能解决问题。

我需要在实现中做些什么来解决这个问题吗?或者我需要修改IE9本身的一些设置吗?

当使用Selenium Webdriver时,我使用InternetExplorerDriver得到以下错误-“启动In

作为参考,如果你想覆盖安全选项,这里是c#代码:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
namespace SeleniumTests
{
    [TestFixture]
    public class Test
    {
       private IWebDriver driver;
       [SetUp]
       public void Setup()
       {
          var options = new InternetExplorerOptions();
          options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
          driver = new InternetExplorerDriver(options);
       }
    }
}

更新:
我之前的回答使用了Selenium 2.0的旧版本,现在我已经更新了代码以适应Selenium DotNet-2.21.0,并包含了正确的名称空间。

Internet Explorer定义了四个区域,每个区域具有不同的安全级别以及启用或禁用保护模式的能力。该错误消息试图告诉您,由于Selenium的InternetExplorerDriver中的限制,必须为所有区域禁用或启用保护模式。

有关更多细节,请参阅Selenium的问题跟踪器中的缺陷报告和Internet Explorer安全选项的屏幕截图。

这应该能解决问题:

InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
IWebDriver driver = new InternetExplorerDriver(options);

Aleh's Answer为我解决了这个问题,但我发现我还需要为IEDriverServer的位置指定文件路径。只是发一下,以防其他人遇到类似的问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTest
{
    class Program
    {
        static void Main(string[] args)
        {
            InternetExplorerOptions options = new InternetExplorerOptions();
            options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
            IWebDriver driver = new InternetExplorerDriver("C:''Selenium", options);
            driver.Navigate().GoToUrl("http://www.stackoverflow.com");
        }
    }
}

参考链接:-https://intensetesting.wordpress.com/2014/09/16/error - 80070012 -意想不到的错误-发射-匙基础-互联网explorer/

如果您升级或降级在操作系统安装期间安装的本机IE浏览器,它将不允许打开勺子浏览器。每次我们需要设置默认的IE浏览器,它就会正常工作。假设当你安装操作系统时,默认的IE版本是IE8,你出于某种目的升级到IE9。在这种情况下,它将不允许在Spoon浏览器中导航任何应用程序(只有浏览器将打开),它将简单地抛出错误消息,如"启动internet explorer意外错误IELaunchURL错误返回80070012"。

我发现以下答案对我有效(上面的答案都不起作用)

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true);
driver = new InternetExplorerDriver(desiredCapabilities);

我发现它可以工作,但是当我试图运行测试时,我也收到了一个"(意外警报打开)",结果我不得不禁用IE开发人员工具栏。

我在构建的服务器上遇到了类似的问题,并且我无法更改保护模式。系统管理员禁用了该功能。甚至当我用管理员帐户登录时,我也无法更改保护模式。但是,我能够运行selenium,没有任何问题。