UPDATE: Появилась информация от пользователей, что выпущенное 10 февраля обновление KB3021952 устраняет описанную ниже проблему. Устанавливается оно обычным способом, через Windows Update.
В середине декабря компания Microsoft выпустила обновление KB3025390 для операционных систем Windows 8 и Windows Server 2013. Установка этого обновления вызывает практически полную потерю работоспособности Selenium.
Поскольку я недостаточно глубоко разбираюсь в деталях устройства драйвера для Internet Explorer, для любителей технических подробностей просто сделаю перевод заметки Джима Эванса (автора драйвера), посвящённой этой проблеме:
16 декабря 2014 года компания Microsoft выпустила обновление KB3025390, распространяемое через Windows Update. Это обновление, в частности, изменило поведение COM-метода IHTMLWindow2::execScript, при попытке его использования возвращается результат “access denied”. Как следствие, драйвер не может выполнить никакой JavaScript-код на странице, открытой в браузере. С учётом того, что значительная часть функциональности драйвера реализована с использованием JavaScript, это фактически полностью парализует работоспосоность драйвера в браузере IE11.
Поскольку собственная реализация драйвера от компании Microsoft пока не завершена, мы не можем рекомендовать использовать его как альтернативу.
Единственным “обходным путём” является удаление этого обновления, что, конечно, тоже нельзя считать хорошим выходом из сложившейся ситуации.
Несмотря на то, что метод execScript помечен как устаревший (deprecated) в спецификации IE11, при реализации драйвера мы достаточно активно использовали этот метод, это не приводило ни к каким проблемам, и мы надеялись, что до конца жизненного цикла 11-й версии браузера этот метод будет работать. Увы, кажется, мы ошибались на этот счёт. Но хуже всего то, что официально предлагаемая в качестве замены функция eval тоже не работает.
В настоящее время зарегистрировано сообщение в баг-трекере Microsoft Connect и команда разработки Internet Explorer занимается исследованием проблемы. В баг-трекере Selenium тоже зарегистрировано сообщение об этой проблеме. Если вы хотите получать уведомления об изменениях статуса – просто “поставьте звёздочку”, не нужно писать комментарии в стиле “у меня тоже не работает” или спрашивать “когда уже наконец это будет исправлено”. Как только будет появляться какая-нибудь полезная информация – мы незамедлительно напишем об этом в комментариях к баг-репорту.
Вот пока вся информация, которой мы располагаем на данный момент.
Ну, или почти вся. В комментариях к упомянутому баг-репорту предложен ещё один вариант “обходного пути” – отключение менеджера безопасности Internet Explorer через реестр. Однако этот способ даже хуже, чем удаление вызвавшего проблему обновления KB3025390, поэтому так делать не рекомендуется.
Ну и ещё раз, вкратце – что же делать, чтобы Selenium продолжал нормально работать с IE11?
Удалить обновление KB3025390 и ждать, когда компания Microsoft исправит возникшую проблему.