Вышла Selenide 5.8.0

Вышла Selenide 5.8.0

Псевдо-элементы, псевдо-навигация, псевдо-условия
28.02.20

Приветос!

Мы подбили ещё пачку пуллреквестов и выпустили 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.


Новости


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

ru.selenide.org

28.02.20