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

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

Вчера, 11 марта, вышел “трибьют-релиз” Selenium 3.11 c кодовым названием “Selenium for Workgroups”.

Как и следовало ожидать, главные изменения в этом релизе связаны с браузером Internet Explorer и платформой Windows:

.Net

  • Реализация PageObjects объявлена устаревшей (deprecated), постепенно она будет удалена из кода Selenium и перенесена в отдельный независимый репозиторий DotNetSeleniumExtras.
  • Класс ExpectedConditions объявлен устаревшим (deprecated), он тоже переедет по указанном выше адресу, но вообще-то можно просто использовать лямбда-выражения в качестве условий ожидания.
  • Драйвер для PhantomJS объявлен устаревшим (deprecated).
  • Исключения, которые могут быть выброшены командами clear и sendKeys, приведены в соответствие со стандартом W3C WebDriver.
  • Иерархия исключений также приведена в соответствие со стандартом W3C WebDriver, добавлены недостающие исключения.

Internet Explorer

  • Устранен крэш драйвера при выполнении команды sendKeys с отключенным режимом native events #5584.
  • Улучшена обработка клавиш-модификаторов (Shift, Control, Alt, Meta) при выполнении команды sendKeys.
  • Правила перемещения указателя мыши приведены в соответствие со стандартом W3C WebDriver, теперь смещение по координатам отсчитывается от центра элемента, а не от левого верхнего угла.
  • Команды для получения cookies переписаны с использованием нового API, доступного в Windows 8.1 SDK и новее (для старых версий продолжает использоваться старый способ получения cookies).
  • Вспомогательный исполняемый файл драйвера IEDriverServer теперь может управлять только одной сессией, для запуска нескольких сессий нужно запускать несколько независимых процессов IEDriverServer (хотя лучше вообще не запускать несколько сессий на одной машине, IE этого не любит, работать будет, но может и закапризничать).

Java

  • Удалены методы startClient и stopClient в классе RemoteWebDriver, которые были помечены как устаревшие (deprecated) в релизе 3.6 (это изменение может коснуться тех, кто использовал самодельные расширения класса RemoteWebDriver).
  • Удалены свойства SafariOptions.cleanSession (текущий драйвер для Safari всегда запускает новую сессию, это свойство просто игнорируется) и SafariOptions.port (драйвер для Safari автоматически выбирает порт).