Подтвердить что ты не робот

Невозможно найти элементы с помощью Internet Explorer 11 и Selenium (любая версия) и IEWebDriver (любая версия)

Я искал ответы на все вопросы, и я не могу найти никаких проблем с моей проблемой. Я пытаюсь запустить тесты Selenium в IE11. Все остальные браузеры работают нормально (включая Edge). Простой тест следующим образом вызовет проблему...

System.setProperty("webdriver.ie.driver.loglevel","TRACE");
System.setProperty("webdriver.ie.driver.logfile", "C:/Projects/logme.txt");
driver = new InternetExplorerDriver();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.get("http:www.google.com");
driver.findElement(By.id("lst-ib")).click;

IE11 запускает и перемещается по URL-адресу, но не может найти никаких элементов на любой странице. Опять же, я знаю, что у людей была эта проблема, но никаких предложений не было исправлено. Это ошибка, которую я получаю каждый раз:

org.openqa.selenium.NoSuchElementException: Unable to find element with id == lst-ib (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 3.23 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.2.0', revision: '8c03df6b79', time: '2017-02-23 10:51:31 +0000'System info: host: 'DESKTOP-63BRP93', ip: '10.0.110.68', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_121'
Driver info: org.openqa.selenium.ie.InternetExplorerDriverCapabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:38992/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 0fbcebc8-6775-4a6c-b10a-47350502598f
*** Element info: {Using=id, value=lst-ib}
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

Вот что я пробовал/сделал...

  • Включить защищенный режим включен для всех зон
  • Установите параметр Разрешить сценарирование на вкладке "Дополнительно" или "IE".
  • Пробовал все возможности IEDriver, известные человеку, например. setCapability (InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, правда);
  • Пробовал IE11 32 и 64bit
  • Попытка найти элемент by, class, тэг и все остальные локаторы бесполезны.
  • Добавлено 2 раздела реестра BFCACHE для 32 и 64-битных экземпляров IE
  • Плакал много.

Ниже приведены прикрепленные журналы, и я обнаружил, что код падает. Это похоже на безопасность, но JavaScript включен, и я не знаю, где еще искать...

T 2017-03-06 17:27:41:529 Browser.cpp(613) Entering Browser::GetDocumentFromWindow
T 2017-03-06 17:27:41:532 Script.cpp(49) Entering Script::Initialize
T 2017-03-06 17:27:41:532 Script.cpp(70) Entering Script::AddArgument(std::wstring)
T 2017-03-06 17:27:41:532 Script.cpp(105) Entering Script::AddArgument(VARIANT)
T 2017-03-06 17:27:41:532 Script.cpp(70) Entering Script::AddArgument(std::wstring)
T 2017-03-06 17:27:41:532 Script.cpp(105) Entering Script::AddArgument(VARIANT)
T 2017-03-06 17:27:41:532 Script.cpp(169) Entering Script::Execute
T 2017-03-06 17:27:41:532 Script.cpp(477) Entering Script::CreateAnonymousFunction
W 2017-03-06 17:27:41:539 Script.cpp(494) -2147024891 [Access is denied.]: Unable to execute code, call to IHTMLWindow2::execScript failed
W 2017-03-06 17:27:41:540 Script.cpp(180) Cannot create anonymous function
W 2017-03-06 17:27:41:540 ElementFinder.cpp(98) A JavaScript error was encountered executing the findElement atom.

Если кто-то видел или исправлял эту проблему, пожалуйста, помогите мне!

Спасибо

4b9b3361

Ответ 1

Раньше я использовал IE11 с Selenium WebDriver 2.5.3 и IEDriver -2.53.0. У меня такая же проблема. Я изменил возможности, установив некоторые свойства для IE программно, и он сработал. Здесь фрагмент кода:

    DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
    caps.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, Configuration.getConfig("My URL"));
    caps.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);