При использовании Selenium Webdriver я получаю следующую ошибку с помощью InternetExplorerDriver - «Неожиданная ошибка при запуске Internet Explorer…»

Я пытаюсь создать экземпляр InternetExplorerDriver на C # и каждый раз получаю следующее сообщение об ошибке:

System.InvalidOperationException: Непредвиденная ошибка при запуске Internet Explorer. Для защищенного режима должно быть установлено одинаковое значение (включено или отключено) для всех зон. (NoSuchDriver)

Теперь я не знаю, как с этим разобраться, но строка кода, которая вызывает рассматриваемую ошибку:

IWebDriver driver = new InternetExplorerDriver();

Документация для InternetExplorerDriver предлагает мне передать ICapabilities в перегруженном конструкторе, но он имеет только свойства BrowserName , IsJavaScriptEnabled , Платформа и Версия . Ни один из них, похоже, не предполагает, что они могут решить проблему.

Есть ли что-то, что мне нужно сделать в реализации, чтобы разобраться в этом? Или мне нужно изменить некоторые настройки в самом IE9?

21
задан H.B. 19 April 2012 в 12:28
поделиться

3 ответа

Для справки, если вы хотите переопределить параметры безопасности, используйте код 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 и включил правильные пространства имен.

27
ответ дан 29 November 2019 в 06:34
поделиться

Ответ Aleh решил эту проблему для меня, но я обнаружил, что мне также нужно было указать путь к файлу для местоположения 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");
        }
    }
}
5
ответ дан 29 November 2019 в 06:34
поделиться

Я обнаружил, что следующее сработало для меня (ни один из приведенных выше ответов не сработал)

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

Я обнаружил, что это сработало, но я также получил «(Неожиданное открытие оповещения)» при попытке запустить тест, который, как оказалось, должен был отключить панель инструментов разработчика IE.

2
ответ дан 29 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: