Приветос!
Мы подбили ещё пачку пуллреквестов и выпустили Selenide 5.8.0.
Какие же обновления нас ждут?
Упростили создание своих условий с помощью лямбд
В классе Condition
появился новый метод match
, который позволяет добавлять свои проверки, не создавая подклассов Condition
.
Ему надо просто скормить лямбду.
См. примеры в тестах:
$("#multirowTable").should(match("border=1", el -> el.getAttribute("border").equals("1")));
Также появились похожие методы для коллекций anyMatch
, allMatch
и noneMatch
.
См. примеры в тестах:
$$("input").shouldBe(anyMatch("value==dog", el -> el.getAttribute("value").equals("dog")));
$$("input").shouldBe(allMatch("value==cat", el -> el.getAttribute("value").equals("cat")));
$$("input").shouldBe(noneMatch("value==bird", el -> el.getAttribute("value").equals("bird")));
См. issue 662.
Спасибо Dmytro Stekanov за PR 1059.
Добавили методы $.sibling()
и $.preceding()
… которые позволяют найти предшественников и последователей на том же уровне DOM. Бывает нужно, когда удобных локаторов нет, а навигировать по дому хочется.
См. примеры в тестах:
$("#multirowTableFirstRow").sibling(0).shouldHave(id("multirowTableSecondRow"));
$(".second_row").parent().preceding(0).find("td", 0).shouldHave(cssClass("first_row"));
См. issue 845.
Спасибо Dmytro Stekanov за PR 1064.
Запилили поддержку псевдо-элементов
Как многие знают, в HTML есть такие штуковины как псевдо-элементы: “:before”, “:after”, “:first-letter”, “:first-line”, “:selection”. Они могут содержать важный текст и стили, которые иногда важно протестировать. Теперь вы можете это сделать.
См. примеры в тестах:
$("h1").shouldHave(pseudo(":first-letter", "color", "rgb(255, 0, 0)"));
$("abbr").shouldHave(pseudo(":before", "content", "\"beforeContent\""));
$("abbr").shouldHave(pseudo(":before", "\"beforeContent\""));
А также можно спросить и SelenideElement
значение псевдо-элемента (но мы такой способ не приветствуем):
assertThat($("h1").pseudo(":first-letter", "color")).isEqualTo("rgb(255, 0, 0)");
assertThat($("abbr").pseudo(":before")).isEqualTo("\"beforeContent\"");
См. issue 994.
Спасибо Denys Shynkarenko за PR 1045.
Исправили SoftAssertionsExtension для JUnit5
Если один из тестов падал, он помечал и все последующие тесты красным. Упс.
См. issue 1071.
Спасибо Alexei Vinogradov за исправление.
Теперь $.click()
кликает всегда в ЦЕНТР элемента
В общем, история такая. Метод $.click()
обычно кликал в центр элемента, НО
если у вас проставлена настройка Configuration.clickViaJS=true
, он кликал в левый верхний угол.
Не то чтобы это было принципиально важно, но мало ли… Теперь он всегда кликает по центру.
На всякий случай. Чтобы всегда всё вело себя одинаково.
См. коммит 106c53941c718.
Новости
-
Представляете, доклад Алексея Виноградова Selenide: Брандашмыг — интерактивное путешествие по дорогам библиотеки занял 3 место в ТОП-10 докладов Heisenbug 2019 Moscow. Это успех!
- Ничего себе! John C. Pratt создал экспортер в Selenide для Katalon Recorder (работает с Katalon Recorder). Это дикий успех!
- Обнаружен phpSelenide - порт Селенида на PHP. Это усPHPех!
- И если кто ещё не видел, SeleneJS - порт Селенида на JS. Это уех!
ru.selenide.org
28.02.20