Селен 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.
Сведения о версии:
Ответы
Ответ 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, которые вы упомянули, могут сработать для вас.
Ответ 2
Microsoft выпустила веб-драйвер IE11
http://www.microsoft.com/en-us/download/details.aspx?id=44069
Ответ 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);