Вышла Selenide 4.13.0

Вышла Selenide 4.13.0

Под звуки салюта
20.08.18

Всем привет!

20 августа в Эстонии отмечается уникальный праздник - День Восстановления Независимости. 20.08.1991 Эстония заново обрела независимость. Прямо сейчас у меня за окном многотысячный хор поёт патриотические песни и гремит салют.

А я под звуки салюта выкатываю … Selenide 4.13.0

Изменений оказалось больше, чем мне казалось. :)


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

Находит последний дочерний элемент данного элемента. Типа $("table").lastChild().shouldHave(cssClass("lastRow"));

См. примеры в тестах селенида

Спасибо SymonK за PR 771


Добавили проверки для коллекций с кастомным таймаутом

Как вы знаете, в Селениде издревле был метод $.waitUntil(условие, таймаут) для ожидания события с нестандартным таймаутом. Теперь мы добавили аналогичный метод и для коллекций. Правда, мы решили не называть его waitUntil, потому что это название неудачное в плане английской грамматики - $$.waitUntil(texts("a", "b", "c")) просто не звучит. В итоге метод называется так же, как и все предыдущие методы:

  • $$.shouldBe(empty, 9000)
  • $$.shouldHave(size(4), 9000)

Больше примеров в тестах селенида.

См. issue 601 и PR 781


Добавили метод Selenide.download(url)

… для скачивания файла по прямой ссылке. Но скачивания, конечно, не просто так, а как будто бы файл открывается в текущем браузере. Технически говоря, Selenide скачивает файл GET-запросом по вашему URL, но добавляет к нему cookies и заголовок User-Agent от запущенного вебдрайвера.

Больше примеров в тестах селенида.

См. PR 782


Обновились до Selenium 3.14.0

На всякий случай упомяну, что SelenideElement больше не реализовывает следующие устаревшие интерфейсы:

  • FindsByLinkText
  • FindsById
  • FindsByName
  • FindsByTagName
  • FindsByClassName
  • FindsByCssSelector
  • FindsByXPath
  • HasIdentity

По идее это не должно ни на что повлиять, просто на всякий случай сказал.

См. PR 773


Метод switchTo().alert() теперь кидает NoAlertPresentException

… вместо TimeoutException

См. issue 273 – спасибо Keita Tsukamoto за PR 774


Исправили сообщение об ошибке из метода $.selectOptionByValue()

См. issue 709 – спасибо Keita Tsukamoto за PR 780


Исправили имя скачиваемого файла

См. issue 734 – спасибо Aliaksandr Rasolka за PR 768


Обновились до WebdriverManager 2.2.5

См. PR 783 и changelog


Обновились до HtmlUnit 2.32.1

См. PR 775


Исправили все селенидовские тесты для Firefox

Все вы помните тот исторический момент, когда вебдрайвер для Firefox уже перестал работать, а geckodriver (или marionette) ещё не начал. В то время нам пришлось “временно” выключить запуск селенидовских тестов под Firefox. И вот недавно мы обнаружили, что всё это время они не запускались. Год? Два? Три? Уже никто не помнит.

И вот мы наконец их включили обратно и починили. Чинить пришлось прилично. Не исключено, что заодно мы и какие-то баги починили. :)

См. PR 778


Новости

  • Замечательный обрывок фразы из чата:

    Юзаю джаву не только за то что она джава, а за наличие кучи готовых плюшек.
    Таких как selenide, restassured итп.

  • Внезапно появилось сразу два фреймворка для автотестов, построенных на базе Селенида:
  • Мы добавили возможность генерировать базовый проект на Selenide + Maven + JUnit5 одной строкой!

Например так:

mvn archetype:generate -B
  -DarchetypeGroupId=org.selenide -DarchetypeArtifactId=selenide-junit5-archetype
  -DgroupId=com.example -DartifactId=ui-tests -Dpackage=com.example.project.ui

См. Используем Maven Archetype для генерации Selenide проекта


Следите за обновлениями!

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

ru.selenide.org

20.08.18