Вышла Selenide 6.17.0

Вышла Selenide 6.17.0

Прощай, WebDriverManager!
02.08.23

Привіт!

Погнали оновлюватись на Selenide 6.17.0!

Обновились на Selenium 4.11.0

Мы обновили версию Selenium с 4.10.0 на 4.11.0.

Полный список изменений в Selenium тут.

См. PR 2393.


Заменили WebDriverManager на SeleniumManager

Начиная с версии 4.6.0, в Селениуме появился встроенный механизм для скачивания вебдрайверов - SeleniumManager. Насколько я понимаю, делает его всё тот же Boni Garcia, который создал и WebDriverManager. Только теперь он это делает официально как часть проекта Selenium.

Подробнее про SeleniumManager тут.

И теперь Selenide использует SeleniumManager вместо WebDriverManager.

  • Да, при этом нам пришлось удалить настройку Configuration.driverManagerEnabled и метод DriverFactory.setupWebdriverBinary. Возможно, у вас сломается компиляция.
  • Да, немножко фигово, что мы сделали это неожиданно. Обычно мы не удаляем функционал сразу, а сначала помечаем его как @Deprecated и удаляем лишь в следующем мажорном релизе.

Но у нас не осталось выбора.

Давайте я покажу,
откуда на WebDriverManager готовилось нападение?

Начиная с версии 5.4.0, WDM начал требовать Java11+ и перестал работать с Chrome 115. А SeleniumManager и на Java 8 работает, и Chrome 115 поддерживает. И работает из коробки. Что нам ещё оставалось?

См. issue 2402 и PR 2400.


P.S. Если вы всё-таки очень хотите использовать WebDriverManager, не проблема: просто добавьте его в свои зависимости и вызывайте явно в начале тестов:

  WebDriverManager.chromedriver().setup();
  WebDriverManager.firefoxdriver().setup();
  WebDriverManager.edgedriver().setup();
  etc.


Вернули поддержку Java 8

В предыдущем релизе Selenide случайно стал требовать как минимум Java 11. Случилось это как раз из-за обновления WebDriverManager, который внезапно стал требовать Java 11.

А теперь: нет WebDriverManager - нет проблемы. :)

Олды, можете снова запускать свои тесты на Java 8.

Тем не менее очень советую обновляться на Java 11 (а ещё лучше - на Java 17), потому что осенью Selenium перейдёт на Java 11. И тогда у вас точно не останется выбора.

См. issue 2385 и PR 2400.


Добавили метод $.type()

Эту фичу очень давно просили. И вот наконец!

$.type() - это то же, что $.sendKeys(), но с задержками. Типа эмуляция того, как реальный пользователь вводит текст.
Может быть полезно, чтобы сработали автоматические подсказки, автозамена или ещё что-нибудь подобное.

import static com.codeborne.selenide.TypeOptions.*;

$("#query").type("Who the fuck is yevgeny prigozhin");
$("#query").type(text("Who the fuck is dmitry utkin"));
$("#query").type(text("Who the fuck is lvova-belova").withDelay(ofMillis(100)));

По умолчанию задержка между “нажатиями клавиш” - 200 миллисекунд.

Спасибо Amuthan Sakthivel за PR 2191.


Новый метод для мобилок: клик с долгим нажатием

Теперь можно делать так:

import static com.codeborne.selenide.appium.SelenideAppium.$;
import static com.codeborne.selenide.appium.AppiumClickOptions.*;

$.click(longPress()); // by default 3 seconds
$.click(longPressFor(Duration.ofSeconds(4)));

См. issue 2370. Спасибо Amuthan Sakthivel за PR 2381.


Новый метод для мобилок: свайп влево и вправо

А ещё теперь можно делать так:

import static com.codeborne.selenide.appium.SelenideAppium.$;
import static com.codeborne.selenide.appium.AppiumSwipeOptions.*;

$.swipeTo(); // by default swipes to the right
$.swipe(right());
$.swipe(right(20));
$.swipe(left());
$.swipe(left(30));

Спасибо Amuthan Sakthivel за PR 2369.


В общем, обновляйтесь, пробуйте, делитесь:

как вам SeleniumManager?
Всё вообще сломалось, или можно жить?


Статистика

Количество ежемесячных скачиваний Селенида перевалило за 649 тыщ!

(Предыдущий рекорд был в марте: 602 тыщи)


Андрей Солнцев

ru.selenide.org

02.08.23