Вышла Selenide 5.21.0

Судный день

Блог

Вышла Selenide 5.21.0

Долой дубликаты!

Добрый вечер!

За окошком месяц май, а на экране релиз Selenide 5.21.0.


Убрали повторные скриншоты и шаги в отчёте для цепочи локаторов

Большинство методов Селенида устроены так, что их можно вызвать несколько штук подряд, в одну строку. Это позволяет писать лаконичные тесты.

Что-то вроде

  $("table#id").$("tbody", 2).$("tr.active").$("td", 5)
    .shouldHave(text("Ну вот"))
    .click();

Правда, с ними была одна проблема. При падении такой проверки Селенид делал несколько скриншотов, а в отчёт (в т.ч. числе в аллюровский отчёт) добавлялось несколько шагов (один для "table#id", второй для "tbody" и т.д.), хотя по сути это один шаг.

Хоть это и некритично, мы эту неприятность убрали. Теперь селенид будет делать один скриншот, а в аллюр отчёте будет одна строка.

См. issue 1055 и PR 1465.

NB! Для этого пришлось сделать приличный рефакторинг, и не исключено даже, что что-то могло сломаться. Сообщайте, будем реагировать!


Добавили BrowserPerTestStrategyExtension

… для перезапуска браузер после каждого теста.

По умолчанию Селенид переиспользует браузер между тестами (в рамках одного потока). Это сделано для скорости. Мы предполагаем, что вы сами в начале теста позаботитьесь о том, чтобы обновить страницу, почистить данные и т.п. - ведь это зависит от каждого приложения.

Если же вы очень хотите в каждом тесте использовать новый браузер, есть и такая возможность. В Селениде из коробки есть поддерджка для JUnit 4, JUnit 5 и TestNG.

Но для JUnit5 у нас был только экстеншн для перезапуска браузера для каждого тестового класса (@ExtendWith({BrowserStrategyExtension.class}), но не тестового метода.

А теперь появился экстенш, заполнивший эту нишу. Если прописать в ваших тестах @ExtendWith({BrowserPerTestStrategyExtension.class}, то в каждом тестовом методе будет использоваться новый браузер.

Это сделает ваши тесты значительно медленнее, но иногда по-другому никак.

См. issue 1448 Спасибо Anton Aftakhov за PR 1450.


Добавили метод $.hover() со сдвигом

В селениде давно есть метод $("div#123").hover() для наведения курсора мыши на нужный элемент. Этот метод двигает курсор к центру элемента, и на это не было возможности повлиять.

Теперь же у нас появился метод $.hover() с параметром, позволяющим указать, на сколько пикселей от центра нужно сдвинуть курсор:

  $("div#123").hover(withOffset(123, 122));

P.S. Кажется, этот сдвиг не всегда оказывается точным. У меня иногда курсор оказывался примерно в этой позиции плюс-минус 30 пикселей. Делитесь, как у вас?

См. issue 1447 и PR 1461.


Обновились на WebDriverManager 4.4.3

Спасибо Anil Kumar Reddy Gaddam за PR 1464 и PR 1469.


Обновились javadoc многих селенидовских методов

… касающийся ленивой загрузки и фразы “not recommended”.

Теперь javadoc ведёт на эти две статьи в вики:

Внимание, неоднозначный контент.
Возможно, вы захотите подискутировать.
Так давайте подискутируем!

См. PR 1430


selenide-selenoid 1.1.2

Мы выпустили обновление selenide-selenoid:1.1.2, в котором добавили поддержку BasicAuth при скачивании файлов из контейнера Selenoid.
См. issue 8 и PR 9.


selenide-appium 1.6.5

Мы выпустили обновление selenide-appium:1.6.5, в котором улучшили сообщения об ошибках пр падении тестов в iOS.
См. issue 54.


Ссылки

Что новенького мы нарыли на просторах сети:


Немного статистики

Статистика скачиваний Selenide за апрель 2021:

Чуть-чуть не дотянули до 200 тысяч.



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

ru.selenide.org

The project is maintained by