При использовании Selenium Webdriver я получаю следующую ошибку, используя InternetExplorerDriver - "Неожиданная ошибка запуска Internet Explorer..."
Я пытаюсь создать экземпляр InternetExplorerDriver на С#, и каждый раз, когда я это делаю, я получаю следующее сообщение об ошибке:
System.InvalidOperationException: непредвиденная ошибка при запуске Internet Explorer. Защищенный режим должен быть установлен на одно и то же значение (включено или отключено) для всех зон. (NoSuchDriver)
Теперь я не уверен, как это разобраться, но строка кода, которая вызывает эту ошибку:
IWebDriver driver = new InternetExplorerDriver();
Документация для InternetExplorerDriver предполагает, что я могу передать объект ICapabilities
в перегруженном конструкторе, но имеет только свойства BrowserName
, IsJavaScriptEnabled
, Platform
и Version
. Ничто из этого не говорит о том, что они могут решить проблему.
Есть ли что-то, что мне нужно сделать в реализации, чтобы разобраться в этом?
Или мне нужно изменить некоторые настройки в самом IE9?
Ответы
Ответ 1
Internet Explorer определяет четыре зоны, каждый с другим уровнем безопасности и возможность включения или выключения защищенного режима. Сообщение об ошибке пытается сказать вам, что Защищенный режим должен быть отключен или включен для зон all из-за ограничения в Selenium InternetExplorerDriver
.
Подробнее см. в отчете в отчете о проблемах с дефектами Selenium и снимок экрана параметров безопасности Internet Explorer.
Ответ 2
Для справки, если вы хотите переопределить параметры безопасности здесь, код С#:
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);
}
}
}
Update:
Мой предыдущий ответ использовал более старую версию Selenium 2.0, теперь я обновил код для работы с Selenium DotNet-2.21.0 и включил правильные пространства имен.
Ответ 3
Это должно решить проблему:
InternetExplorerOptions options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
IWebDriver driver = new InternetExplorerDriver(options);
Ответ 4
Aleh 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");
}
}
}
Ответ 5
Я обнаружил, что для меня работали (ни один из ответов выше не работал)
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.SetCapability(InternetExplorerDriver.IntroduceInstabilityByIgnoringProtectedModeSettings, true);
driver = new InternetExplorerDriver(desiredCapabilities);
Я обнаружил, что это сработало, но я также получил сообщение "(Unexpected Alert Open)", когда я попытался запустить тест, и все, что оказалось, мне пришлось отключить панель инструментов разработчика IE.
Ответ 6
Ссылка: -
https://intensetesting.wordpress.com/2014/09/16/error-80070012-unexpected-error-launching-spoon-based-internet-explorer/
Если вы обновляете или деградируете собственный браузер IE, который был установлен во время установки ОС, он не позволит открыть браузеры с ложкой. Каждый раз, когда нам нужно создать браузер IE по умолчанию, он будет работать.
Предположим, что, когда вы установили ОС, IE по умолчанию IE8, и для какой-то цели вы перешли на IE9. В этом случае он не позволит осуществлять навигацию по любому приложению в браузерах Spoon (только браузер откроется), и он просто выкинет сообщение об ошибке, например "Неожиданная ошибка запуска Internet Explorer IELaunchURL error 80070012".
Ответ 7
У меня была схожая проблема на сервере, который был построен, и у меня не было способа изменить защищенный режим. Системный администратор был отключен. Даже когда я вошел в систему с учетной записью администратора, мне не удалось изменить защищенный режим. Тем не менее, я смог без проблем запустить селен.