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

Выпущена очередная версия Selenium 2.35. Пусть вас не смущает тот факт, что я пропустил версию 2.34 – она оказалась неудачной и просуществовала всего неделю, поэтому я опишу сразу все изменения, которые произошли по сравнению с версией 2.33 (ну, не все, конечно, а самые главные).

Общее:

  • В Java-версии классы Keyboard, Mouse и TouchScreen перенесены из пакета org.openqa.selenium в пакет org.openqa.selenium.interactions, поэтому если вы в своем коде использовали эти классы, код перестанет компилироваться, необходимо поправить import-декларации, см. также ниже замечание про OperaDriver
  • Обновлена для всех браузеров библиотека wgxpath, которая используется для выполнения XPath-запросов, если браузер не может это выполнить встроенными средствами
  • IPhoneDriver объявлен deprecated в пользу “внешних” реализаций ios-driver и appium
  • Изменен способ передачи идентификатора сессии в протоколе WebDriver, это могло сказаться (и сказалось) на многих сторонних инструментах, которые используют движок Selenium, но большинство уже оперативно исправлено Улучшена совместимость с python3

Firefox:

  • Добавлена поддержка нативных событий в Firefox 23. В итоге версия 2.35 поддерживает нативные события для версий 10esr, 17esr, 22, 23
  • Изменена реализация синтезированных событий, эмулирующих действия мыши, теперь они эмулируются через интерфейс браузера nsIDOMWindowUtils, в соответствии с рекомендациями разработчиков браузера
  • Реализована альфа-версия поддержки интерфейса Marionette для управления браузером, пока этот интерфейс неполнофункциональный и работает только в версиях Firefox 24 и более новых, но официальный план Mozilla заключается в полном переходе на этот интерфейс и отказе от “традиционной” реализации FirefoxDriver, правда случится это не раньше выхода Firefox 31

Internet Explorer:

  • Добавлена новая опция (capability) ie.setProxyByServer, которая управляет способом изменения настроек proxy в браузере Internet Explorer, значение false (по умолчанию) означает, что должен использоваться старый способ установки proxy через реестр, значение true означает, что настройки proxy будут изменяться через WinINet API, новый способ не требует работы с реестром и поэтому безопаснее (изменения реестра могут сохраняться после сбоя тестов), а также лучше совместим с параллельным запуском нескольких экземпляров браузера

OperaDriver:

  • Уже выпущена версия 1.5, совместимая с Selenium 2.35, то есть учитывающая перенос классов Keyboard, Mouse и TouchScreen в другой пакет, но в дистрибутив Selenium 2.35 к сожалению вошла несовместимая версия 1.4.5, поэтому если вы указываете зависимость от selenium-server-standalone, то использовать OperaDriver вы не сможете, нужно отдельно подключить operadriver-1.5, конечно в следующей версии Selenium 2.36 это уже будет исправлено