Вышла Selenide 3.8

Блог

Вышла Selenide 3.8

Няшки-полезняшки

Привет!

Мы выпустили Selenide 3.8! В нём мы подправили много мелких недочётов и сделали некоторые небольшие, но полезные полезности.


Исправлена загрузка файлов (upload) на удалённых браузерах в гриде

Спасибо Alexei Vinogradov за исправление грида!

Теперь можно отключать создание *.html файлов

Когда ваш драгоценный тест падает, по умолчанию Selenide создаёт 2 файла:

  1. Скриншот - файл *.png
  2. Исходный код текущий страницы - файл *.html

Оказалось, что не все хотят сохранять *.html-файлы. Например, в случае одностраничных приложений в этот html-файл попадал html-код всех-привсех страниц приложения, то есть файлы получались большими и бессмысленными.

Теперь можно отключить сохранение html-файлов - как обычно, либо через системную переменную:

  mvn test -Dselenide.savePageSource=false

либо прямо в коде:

  Configuration.savePageSource = false;

Спасибо Boris Osipov за этот pull request!

Добавлен метод $.dragAndDropTo(WebElement)

До сих пор в Selenide был только метод $.dragAndDropTo(String), где строковой параметр - это CSS селектор целевого элемента. А иногда хочется определять целевой элемент и по-другому.

Для таких случаев теперь есть метод $.dragAndDropTo(WebElement) позволяет перетащить элемент в другое место. Например:

  SelenideElement target = $(byText("Drop here"));
  $("#from").dragAndDropTo(target);

См. issue #355

Теперь аннотации SimpleReport и SoftAsserts для TestNG - потокобезопасные

Если вы используете аннотации SimpleReport или SoftAsserts и фреймворк TestNG (бедняги!), да ещё и запускаете тесты параллельно в несколько потоков, то вы могли замечать, что иногда отчёт о прохождении тестов пустой. А иногда могли ловить ConcurrentModificationException.

Оказалось, TestNG конкретная редиска и вообще нехороший фреймворк. Если вы объявляете @Listener(SoftAsserts) у одного класса, TestNG создаёт только один инстанс класса SoftAsserts и использует для всех тестов, даже параллельных.

А вот JUnit, умница и молодец, создаёт новый экземпляр каждого тест-класса и каждого правила для каждого следующего теста. Таким образом исключаются всяческие конфликты и случайные зависимости теста от предыдущих тестов.

В общем, теперь мы это исправили, и SoftAsserts умеет работать параллельно в нескольких потоках даже в TestNG.

См. issue #364 и #303.

Добавили методы в класс Selectors: byCssSelector() и byClassName()

Я до сих пор не уверен, что это так уж нужно, но народ просил.

Теперь в классе Selectors есть by* аналоги всех методов из селениумовского By.*.

См. #360.

Исправили JavaScript ошибку при запуске браузера Edge

Теперь Selenide можно использовать и с новым микрософтовским браузером Edge. Говорят, он быстр и свеж, как Тимати.

См. #339.

Теперь метод $.screenshot() сохраняет скриншот в правильное место

Есть в Selenide такой метод, который сохраняет скриншот не всей страницы, а одного элемента:

  String screenshotFile = $("#footer").screenshot();

Всё бы хорошо, но он сохранял скриншоты в корневую папку проекта. Теперь мы его исправили, и он складывает файлы в папку build/reports, как и остальные методы для снятия скриншотов.

См. #290.

Добавлена защита против неправильного использования soft asserts

Теперь Selenide кинет ошибку, если вы включите режим “Soft asserts”, но забудете добавить соответствующую аннотацию к тест-классу.

См. #302.

В Javadoc всех методов SelenideElement добавлены ссылки на имплементации этих методов

Например, метод $(“input”).setValue(“hello”) реализован в классе SetValue

См. #367.

Обновились до htmlunit 2.23

См. список изменений


Новости

Десерт

И на десерт - свежая шутка про Чака Норриса:

Чак Норрис не использует Selenide.
Чак Норрис пишет тесты на голом селениуме.
А что, он же бессмертный, у него есть на это время.



Обновляйтесь!

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

ru.selenide.org

blog comments powered by Disqus

The project is maintained by