Вышел релиз Selenium 3.6
В отличие от предыдущего релиза, в котором основные изменения были сосредоточены “под капотом”, новый релиз 3.6 содержит несколько крупных хорошо заметных снаружи изменений.
Java
- Удалены зависимости артефакта selenium-java от драйверов для PhantomJS и HtmlUnit. Причины, правда, разные.
- Разработчики PhantomJS объявили о прекращении работы над этим проектом в связи с появлением в Chrome и Firefox так называемых headless-режимов, позволяющих запускать браузер без показа окна, в скрытом виде. Это фактически делает PhantomJS ненужным, тем более, что он построен не на полноценном современном браузерном движке, а на достаточно старой версии движка WebKit.
- HtmlUnit тоже не является полноценным браузером, это вообще грубая подделка, но мы его любим не за аутентичность, а за высокую производительность. Драйвер для него жив и здоров, а зависимость от него убрали просто потому, что релизные циклы не совпадают. Поэтому ставьте в своих проектах две зависимости – от selenium-java и htmlunit-driver (если он вам нужен, конечно) – и обновляйте их версии независимо.
- Классы
FirefoxOptions
,ChromeOptions
и их аналоги для других браузеров теперь реализуют интерфейсCapabilities
. Это упростило и сделало более элегантной инициализацию драйверов. В частности, можно объект класса*Options
передавать в конструктор удалённого драйвера:new RemoteWebDriver( new FirefoxOptions() .addPreference("xxx", "yyy") .addPreference("aaa", "zzz"))
- В классы
FirefoxOptions
иChromeOptions
добавлен методsetHeadless
, который, как ясно из названия, позволяет запускать браузеры в headless-режиме. - Реализована возможность установки в Firefox дополнений в формате WebExtensions.
.Net
- Появилась поддержка .Net Core 2.0, теперь написанные на C# тесты можно запускать не только под Windows. Увы, для этого пришлось кое-чем пожертвовать, подробнее об этом можно почитать в блоге разработчика.
- Завершён переход на новый W3C-совместимый протокол, так что теперь тесты на C# можно удалённо запускать только на Selenium Server версии 3.5 или новее, а для браузера Chrome требуется версия драйвера 2.31 или новее.
- Добавлены методы
Minimize
иFullScreen
для окон иGetProperty
для элементов. Этих команд не было в Selenium 2, но они введены в стандарт W3C WebDriver, так что скоро должны появиться и на других языках тоже.
Ruby
- Драйвер для PhantomJS объявлен deprecated, причины объясняются выше.
Python
- Реализован класс
IEOptions
для настройки параметров запуска драйвера для Internet Explorer. - Добавлена поддержка нового W3C-совместимого протокола (наконец-то!), так что вскоре можно и здесь ожидать появления новых команд, которые добавлены в стандарте W3C WebDriver.
А также в реализациях на всех языках удалены многочисленные deprecated-методы и исправлена куча багов.
Как видите, изменений много, в том числе интерфейсных, поэтому будьте внимательны, при обновлении возможно появление ошибок компиляции, особенно если вы использовали deprecated-методы. Добавьте в проект зависимости от PhantomJS и HtmlUnit, если они вам нужны. Почистите свой код от использования deprecated-методов, которые вскоре будут удалены.