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

На прошлой неделе случился релиз 2.38, а я ещё не написал список изменений для предыдущей версии 2.37. Поэтому список изменений будет сразу для двух версий.’

Итак, вот что нового появилось в версии 2.38:

Самое главное

  • нарушена совместимость с Python 3, пока оставайтесь на версии 2.37, если вы пишете тесты на Python 3!!!

Firefox

  • реализована поддержка нативных событий в версии 25, при этом версия 24 является ESR, так что в итоге Selenium 2.38 поддерживает нативные события для версий 17esr, 24esr, 25
  • уровень протоколирования нативных частей FirefoxDriver теперь может быть задан переменной окружения SELENIUM_LOG_LEVEL
  • отключена Content Security Policy (которая вызывала сбой с характерным сообщением “не удается загрузить файл evaluate.js”)
  • укорочено текстовое представление профиля Firefox в логе сервера
  • исправлено значение, возвращаемое для capability nativeEvents
  • устранены зависания, если в процессе ввода данных в поле ввода возникает проблема, теперь выбрасывается исключение

Internet Explorer

  • полностью уничтожен WindowsProxyManager, управление настройками прокси полностью реализовано в IEDriverServer, будьте внимательны, могут быть связанные с новой реализацией баги

Chrome

  • устранены “непонятные” сообщения о невозможности остановить Chrome в ситуации, когда его на самом деле не удалось запустить
  • реализована остановка chromedriver в ситуации, когда не удается найти исполняемый файл браузера Chrome реализована возможность передачи опции –verbose в драйвер, которая использовется как workaround для одного из критичных багов chromedriver

Safari

  • полностью переделана реализация модуля сетевого обмена между браузером и драйвером, должна повыситься стабильность, но могут быть новые баги
  • getTagName преобразует название тега в нижний регистр

Разное:

  • при перемещении мыши относительно элемента, скрытого в overflow-блоке, сначала выполняется скроллирование так, чтобы этот элемент стал видимым
  • устранен бесконечный цикл, возникающий в ситуации, когда documentElement имеет фиксированные координаты
  • реализована альтернативная версия аугментера org.openqa.remote.JdkAugmenter, не использующая cglib
  • добавлены недостающие условия в Java-реализации ExpectedConditions
  • реализована возможность переключения во фрейм по имени или по идентификатору в WebDriverBackedSelenium
  • добавлены иконки PhantomJS в консоль Selenium Grid
  • исправлены некоторые застарелые ошибки в Selenium RC

А вот какие изменения были в версии 2.36 + 2.37 (2.37 это небольшой баг-фикс релиз для 2.36):

Firefox

  • реализована поддержка нативных событий в версии 24, при этом версия 24 является ESR, так что в итоге Selenium 2.38 поддерживает нативные события для версий 17esr, 23, 24esr
  • реализована capability elementScrollBehavior, позволяющая бороться со стики-панелями
  • исправлено скроллирование элементов во фреймах
  • исправлено перетаскивание элементов во фреймах при использовании нативных событий
  • реализована возможность установки SOCKS-прокси

Internet Explorer

исправлено вычисление координат элементов при скроллировании с учётом размера скроллбара (чтобы проскроллировать “достаточно далеко” и элементы не оказались спрятанными за скроллбаром)

Разное:

  • улучшена поддержка SVG-документов
  • улучшены внутрение механизмы поддержки HTML5, выбрасываются более понятные исключения при возникновении проблем
  • HtmlUnit обновлен до версии 2.13

А на этой неделе должна выйти уже версия 2.39, потому что грядёт очередное обновление браузера Firefox. Но это ещё не всё – в следующей версии Selenium вас ждёт сюрприз :)