Вышел релиз Selenium 2.45

С момента предыдущего релиза прошло четыре месяца. Обычно новая версия Selenium выпускается вместе с новой версией браузера Firefox. Однако на этот раз были пропущены версии Firefox 34, 35 и обновление Selenium совпало только с выпуском Firefox 36. Ниже краткий рассказ о том, что мы сделали и чего мы не смогли сделать за эти четыре месяца.

Сначала три главных новости, которые только наполовину хорошие.

  • Реализована поддержка нативных событий для Firefox 34, то есть теперь поддерживаются 34, 33, 31esr и 24esr. Однако тут правильнее было бы написать так: не реализована поддержка нативных событий для браузеров Firefox 35 и 36. Потому что Mozilla “нечаянно” удалила одну очень нужную функцию, без которой мы больше не можем узнавать “нативные идентификаторы” окон браузера. Альтернативного способа получить требуемую информацию пока не придумано. Есть шанс, что реализация нативных событий сломана отныне и навсегда. Привыкайте к синтезированным :)
  • Устранена критичная проблема совместимости с Firefox 36. Опять таки, Mozilla сделала что-то непонятное внутри браузера, так что старые версии компонента httpd.js (этот компонент тоже делает Mozilla) перестали работать в новой версии браузера. Казалось бы, ничего страшного, достаточно обновить компонент и всё будет хорошо. Именно это мы и сделали. И проблема совместимости исчезла. Но, увы, вместо неё появились проблемы с производительностью при запуске браузера под Linux. Поэтому пока можно признать исправление лишь частичным.
  • Удалена автоматическая инсталляция драйвера для Safari. Теперь его нужно устанавливать вручную. Увы, стремление компании Apple к повышению уровня защиты создало непреодолимый заслон на пути автоматической установки дополнений к браузеру. Но зато теперь отныне и впредь больше не будет багов в механизме автоинсталляции при выходе новых версий браузера :)

А теперь про остальные наиболее значительные изменения в новой версии:

  • в реализации на Java произведено разделение клиентских jar-файлов на две части: всё, относящееся к Selenium RC вынесено в отдельный jar-файл (это относится и к Maven-артефактам)
  • добавлена прямая поддержка Safari и Internet Explorer в реализацию на JavaScript (то есть для работы с этими браузерами теперь не требуется Selenium Server)
  • появилась поддержка загрузки (upload) файлов в реализации на JavaScript
  • добавлена поддержка новой Opera (работающей на движке Blink) в реализации на Java, .Net, Python и JavaScript, а также в Selenium Server
  • обновлён драйвер для PhantomJS, в дистрибутив включена “неофициальная” версия 1.2.1
  • реализована поддержка пространств имён (namespaces) в XPath-локаторах

Ну и как всегда исправлены разные относительно мелкие ошибки, но это в большей степени интересно авторам баг-репортов, а не широкой публике :)