Привіт!
Погнали оновлюватись на Selenide 6.17.0!
- Обновились на Selenium 4.11.0
- Заменили WebDriverManager на SeleniumManager
- Вернули поддержку Java 8
- Добавили метод
$.type()
- Новый метод для мобилок: клик с долгим нажатием
- Новый метод для мобилок: свайп влево и вправо
- Статистика
Обновились на 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