На холодном ветру
Поиграли с тобой,
Но пришёл сам собой
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>'
Обновились до 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