Вышла Selenide 6.6.0

Вышла Selenide 6.6.0

Дешорткатификация $.clear
08.06.22


Здравствуйте, друзья!


Мы выпустили релиз Selenide 6.6.0.

Появился новый плагин selenide-clear-with-shortcut

В Selenide 6.5.0 мы поменяли реализацию $.clear() со стандартной селениумовской на шорткат (“Выделить всё” - Удалить). Оказалось, что этот шорткат не работал достаточно стабильно во всех браузерах, пришлось его доработать. Вроде стабилизировался, но стал медленнее, чем просто WebElement.clear(). А поскольку это не всем нужно, решили в конце концов в Селениде оставить старую добрую селениумовскую реализацию.

А кому нужна очистка шорткатом - может подключить себе наш новый плагин:

  testImplementation('com.codeborne:selenide:6.6.0')
  testImplementation('com.codeborne:selenide-clear-with-shortcut:6.6.0')

Зависимость com.codeborne:selenide-clear-with-shortcut переопределит метод $.clear() - а соответственно, и $.setValue().

См. issue 1497, PR 1847 и PR 1838.


Исправили метод $.clear() в Safari

Внезапно выяснилось, что новый $.clear() не работал в Safari (кто его вообще использует?).
Вроде починили. Делитесь опытом, как у вас, починилось?

См. issue 1819, PR 1820.


Новые проверки для текста элемента

Добавили две новых проверки для “своего текста” (own text) элемента:

  • $("#child_div1").shouldHave(ownTextCaseSensitive("Son"));
  • $("#child_div1").shouldHave(exactOwnTextCaseSensitive("Son"))

Спасибо Kachurin Alexandr за PR 1811 и PR 1812.


Добавили метод $.click() с таймаутом

По умолчанию у метода $.click() стандартный селенидовский таймаут (который по умолчанию 4 секунды).
Иногда этого недостаточно - например,

  1. Когда клик по ссылке ведёт на следующую страницу, которая грузится дольше 4 секунд.
  2. Когда элемент, по которому нужно кликнуть, ещё не появился на экране - и появляется больше, чем через 4 секунды.

В этом релизе мы добавили таймаут методу $.click():

  $("#slow-link").click(usingDefaultMethod().timeout(ofSeconds(8)));
  $("#slow-link").click(usingJavaScript().timeout(ofSeconds(8)));

Правда, этот параметр решает пока только первую проблему, но не вторую. В следующем релизе займёмся и второй. :)

См. issue 1572 и PR 1845.


Издревле эти три метода позволяют работать с модальными джаваскриптовскими окошками (alert, confirm, prompt). Например,

confirm();
confirm("Are you sure you want to delete all files?");

Но не было варианта с таймаутом - на тот случай, если алерт появляется не сразу, а больше, чем через 4 секунды. Теперь можно задать таймаут:

confirm(withTimeout(ofSeconds(2)));
confirm(withExpectedText("Are you sure?").timeout(ofSeconds(2)));

См. issue 1721 и PR 1846.


Подправили метод Driver.executeJavaScript()

…чтобы он работал и с “завёрнутым” вебдрайвером (т.е. когда на вебдрайвер навешаны листенеры).

См. PR 1848.


Подправили формулировку некоторых проверок

… чтобы он звучали корректно по-английски. А именно:

В тесте В отчёте было В отчёте стало
$.should(appear) “Element should visible” “Element should be visible”
$.should(disappear) “Element should hidden” “Element should be hidden”

См. PR 1840.


Добавили опции для Safari

Выяснилось, что при открытии браузера Safari селенид терял почти все его настройки. Сломалось при переходе на Selenium 4. Починить это оказалось легко, но почему никто до сих пор не жаловался?

Похоже, Safari всё-таки никто не использует. :)

См. issue 1836 и PR 1841.


Починили софт ассерты на TestNG

После обновления на TestNG 7.5 перестали правильно работать селенидовские софт ассерты. Если какая-то проверка падала, тест по-прежнему оставался зелёным.

Пришлось откатиться до TestNG 7.4.0 и ждать исправления на той стороне.

См. issue 1834 и PR 1843.


Обновили зависимости


Статистика

Давно мы не публиковали статистика скачиваний Селенида

Мы почти вернулись к рекордному показателю: 324 тысяч скачек за май.


Не переключайтесь!


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

ru.selenide.org

08.06.22