Селен WebDriver на IE11

Я использую WebDriver для автоматизации набора регрессионных решений нашего webapp, я пытался использовать свои тестовые скрипты с IE11, но не добился успеха.

Я понимаю, что IEDriverServer.exe в настоящее время не поддерживает WebDriver, и для этого требуется сотрудничество со стороны Microsoft, я пробовал шаги, описанные в ответах на проблему Selenium # 6511.

  • (Только для IE 11 вам нужно будет установить запись реестра на целевом компьютере, чтобы драйвер мог поддерживать соединение с экземпляром созданного им Internet Explorer. Для 32-разрядных установок Windows ключ вы должны проверить в редакторе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE.

    Для 64-разрядных установок Windows ключевым является HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE. Обратите внимание, что подраздел FEATURE_BFCACHE может быть или не быть, и должен быть создан, если он отсутствует. Внутри этого ключа создайте значение DWORD с именем iexplore.exe со значением 0.)

  • Настройки защищенного режима одинаковы для всех зон

  • Усовершенствованный защищенный режим отключен.

Но все же, когда я запускаю сценарии автоматизации в IE11, он открывает браузер и становится ниже Exception

org.openqa.selenium.ElementNotVisibleException: Received a JavaScript error attempting to 
click on the element using synthetic events.We are assuming this is because the element 
isn't displayed, but it may be due to other problems with executing JavaScript. (WARNING:
The server did not provide any stacktrace
information)

Кто-нибудь может помочь мне в решении этой проблемы. Мне нужно выполнить сценарии автоматизации в IE11.

Сведения о версии:

  • селен-2.41.0

  • Сервер InternetExplorerDriver (32-разрядный) 2.40.0.0

  • Windows 7 - 32 бит

Ответ 1

Это немного сложно и раздражает, но возможно.

Вы уже указали необходимые настройки IE. Он также кэширует содержимое между запусками/использованием, и вам придется очистить кеш и личные настройки. Я обнаружил, что следующее помогает гарантировать, что экземпляр будет чистым при запуске. Это параметры, которые будут переданы в экземпляр IE при создании WebDriver.

Local:

    var options = new InternetExplorerOptions();
    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
    //Clean the session before launching the browser
    options.EnsureCleanSession = true;

Пульт дистанционного управления:

    capabilities = DesiredCapabilities.InternetExplorer();
    capabilities.SetCapability("ie.ensureCleanSession", true);

Возможно, это и ваши настройки безопасности IE, которые вы упомянули, могут сработать для вас.

Ответ 3

обновление за 2017 год:

  case "remote5555iexplorer" => {
    println(" load web-driver: remote5555iexplorer")

    val dc = DesiredCapabilities.internetExplorer()
    dc.setJavascriptEnabled(true)
     dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true)
    dc.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true)
    dc.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true)

    dc.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);

    remote = new RemoteWebDriver(new URL("http://localhost:5555/"), dc) 
    //remote = new InternetExplorerDriver(dc)

  }

iexplorer: 11.0.9.9600.17843 версия для обновления: 11.0.20

libraryDependencies + = "org.seleniumhq.selenium" % "selenium-ie-driver" % "3.3.1"

webdriver: IEDriverServer.exe 3.2.0.0 (64-разрядная версия)

для запуска webdriver: IEDriverServer.exe/LOG-LEVEL = DEBUG

Ответ 4

все дело в желаемых возможностях.. используйте эту строку для желаемого драйвера IE, и он больше не повторится... и это сработало для меня..

            ieCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL,false);