Вышла Selenide 5.3.0

Вышла Selenide 5.3.0

Последний день, когда у нас ВСЁ ВСЕРЬЁЗ!
02.09.19
В Selenide 5.2.8, как в игру,
На холодном ветру
Поиграли с тобой,
Но пришёл сам собой
Selenide 5.3.0


#968 Запускаем кустарные команды

Эта фича придётся вам по вкусу.

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

Так вот, мы добавили удобный способ запускать такие команды, особенно несколько команд в одну строку. Для этого достаточно вызвать метод $.execute:

    var turnCalendar = new Command<SelenideElement>() {...};
    var pickDate = new Command<SelenideElement>() {...};
    var lookAtPhoto = new Command<SelenideElement>() {...};

    $("hiddenFileInput").execute(turnCalendar).execute(pickDate("03.09")).execute(lookAtPhoto);

Спасибо Aleksandr Rasolka за pull request 968.


#970 Дополнили текст ошибки для shouldHave(attribute("href", ..."))

Люди с полей сообщали о странной проблеме: href вроде бы одинаковый, а тест падает:

Element should have attribute href="/files/hello_world.txt" {by text: Download me}
Element: '<a href="/files/hello_world.txt">Download me</a>'

Оказалось, что дело в одной хитрой особенности Selenium: метод WebElement.getAttribute("href") возвращает абсолютный URL, а не относительный.
Подробнее об этом Алексей Баранцев рассказывал на Гейзенбаге 2018.

Собственно, мы эту проблему не исправили, но улучшили сообщение об ошибке. Теперь там видно актуальное значение атрибута:

Actual value: href="http://my-test-env.com:9999/files/hello_world.txt"


#469 Улучшили текст ошибки для OR условий

Кто-то знает, а кто-то нет, но селенид позволяет проверять одно из двух условий. Удобно использовать, когда мы хотим проверить, что хотя бы одно из условий верное - либо одно, либо второе (либо оба вместе):

    
    $("h1").shouldBe(or("poetic", 
      text("Пролетел жёлтый лист по бульварам Москвы"), 
      text("Горят костры рябин")
    ));


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


Element should have text 'Пролетел жёлтый лист по бульварам Москвы' {h1}


Мы это дело подправили, теперь он рапортует все условия из OR:


Element should be poetic: text 'Пролетел жёлтый лист по бульварам Москвы' or text 'Горят костры рябин' {h1}
Element: '<h1>3 сентября</h1>'

См. Issue 469 и PR 962.


Обновились до webdrivermanager:3.6.2

Похоже, в основном исправления для Edge. Changelog тут.


Всё то и всё так!


Новости

  • Автор WebDriverManager Boni García запилил selenium-jupiter - обёртку для Selenide (+JUnit5 +Docker). Обёртку для обёртки, прикиньте!
  • Сравнение Selenide и FluentLenium: Часть 1, Часть 2
  • Чума! Сергей Егоров (коммитер TestContainers) сотворил волшебство: Jabel. Теперь вы можете писать на Java13 и компилировать код в байт-код Java8.


Конференции

Приходите на конференцию QA Fest в Киеве 20-21 сентября!

Говорят, это крупнейшая конференция по тестированию в Украине. 5 потоков!
Много крутых спикеров и спикерш.

У меня будет два доклада:

  • “Селенид для продвинутых”
    (параллелизация, статика, листенеры, прокси, трюки с JavaScript, производительность)
  • “10 причин моей ненависти”
    (TestNG, репорты, пэдж обжекты, try/catch, ифы в тестах, dependency injection, spring и OverKISS)

Будет подгорать!


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

ru.selenide.org

02.09.19