com.codeborne.selenide.Condition [src]

Условия используются в конструкциях should / shouldNot / waitUntil / waitWhile. Мы рекомендуем статически импортировать используемые условия, чтобы получить все преимущества читаемого кода.

  • visible | appear // e.g. $("input").shouldBe(visible)
  • present | exist // условия присутствия элемента в DOM
  • hidden | disappear | not(visible)
  • readonly // e.g. $("input").shouldBe(readonly)
  • name // e.g. $("input").shouldHave(name("fname"))
  • value // e.g. $("input").shouldHave(value("John"))
  • type // e.g. $("#input").shouldHave(type("checkbox"))
  • id // e.g. $("#input").shouldHave(id("myForm"))
  • empty // e.g. $("h2").shouldBe(empty)
  • attribute(name) // e.g. $("#input").shouldHave(attribute("required"))
  • attribute(name, value) // e.g. $("#list li").shouldHave(attribute("class", "active checked"))
  • cssClass(String) // e.g. $("#list li").shouldHave(cssClass("checked"))
  • focused
  • enabled
  • disabled
  • selected
  • matchText(String regex)
  • text(String substring)
  • exactText(String wholeText)
  • textCaseSensitive(String substring)
  • exactTextCaseSensitive(String wholeText)
  • and
  • or
  • not

Можно составлять более сложные условия на основе уже имеющихся:

Condition clickable = and("can be clicked", visible, enabled);
$$(".button").findBy(clickable).click()
//...
log("Hidden or disabled items: " + $$(".item").filterBy(not(clickable)).size());

Можно легко добавлять свои условия, реализовав подкласс com.codeborne.selenide.Condition.

e.g.:

    public static Condition css(final String propName, final String propValue) {
        return new Condition("css") {
            @Override
            public boolean apply(WebElement element) {
                return propValue.equalsIgnoreCase(element.getCssValue(propName));
            }

            @Override
            public String actualValue(WebElement element) {
                return element.getCssValue(propName);
            }
        };
    }

// Пример использования:
$("h1").shouldHave(css("font-size", "16px"));

results matching ""

    No results matching ""