Java源码示例:com.codeborne.selenide.Condition

示例1
@Override
public boolean apply(SpecificCondition condition) {
    return componentApply(match(condition), getDelegate())
            .when(eq(Conditions.CHECKED)).get(() ->
                    $(byChain(by, INPUT)).is(CHECKBOX_CHECKED)
            )
            .when(eq(Conditions.SELECTED)).get(() ->
                    $(byChain(by, INPUT)).is(Condition.selected)
            )
            .when(hasType(Caption.class)).get(c ->
                    impl.has(exactText(c.getCaption()))
            )
            .when(hasType(CaptionContains.class)).get(cc ->
                    impl.has(text(cc.getCaptionSubstring()))
            )
            .when(eq(READONLY)).get(() ->
                    impl.has(readonlyClass)
            )
            .when(eq(EDITABLE)).get(() ->
                    !impl.has(readonlyClass)
            )
            .getMatch();
}
 
示例2
@Override
public T shouldNot(Condition... conditions) {
    SpecificConditionContext.with(this, () ->
            getDelegate().shouldNot(conditions)
    );
    return (T) this;
}
 
示例3
@Override
public void shapeShouldBe(ImageShape shape) {
    switch (shape) {
        case circle:
            element().$("img").shouldHave(Condition.cssClass("rounded-circle"));
            break;
        case rounded:
            element().$("img").shouldHave(Condition.cssClass("rounded"));
            break;
        case polaroid:
            element().$("img").shouldNotHave(Condition.cssClass("rounded"),Condition.cssClass("rounded-circle"));
            break;
    }
}
 
示例4
@Override
public void shouldHavePlaceholder(String placeholder) {
    Condition condition = Condition.attribute("placeholder", placeholder);

    SelenideElement elm = inputElement();
    if (elm.exists()) elm.shouldHave(condition);
    else cellInputElement().shouldHave(condition);
}
 
示例5
@Test()
public void testDownVerticalDragAndDropUntilCondition()
{
    Selenide.open("https://demos.telerik.com/kendo-ui/slider/index");

    SelenideElement slider = $("#equalizer .k-slider-vertical:first-child a");
    SelenideAddons.dragAndDropUntilCondition(slider, slider, 0, 10, 3000, 23, Condition.attribute("aria-valuenow", "-6"));

    Assert.assertEquals($("#equalizer .k-slider-vertical:first-child a").getAttribute("aria-valuenow"), "-6");
}
 
示例6
@Override
public T waitUntil(Condition condition, long timeoutMilliseconds) {
    SpecificConditionContext.with(this, () ->
            getDelegate().waitUntil(condition, timeoutMilliseconds)
    );
    return (T) this;
}
 
示例7
/**
 * Проверка, что кнопка/ссылка недоступна для нажатия, поле или элемент не доступен для редактирования
 */
@Тогда("^(?:ссылка|кнопка|поле|элемент) \"([^\"]*)\" (?:недоступно|недоступен|недоступна)$")
@Then("^(?:link|button|field|element) named \"([^\"]*)\" is not (?:clickable|editable)$")
public void fieldIsDisable(String elementName) {
    SelenideElement element = akitaScenario.getCurrentPage().getElement(elementName);
    assertTrue(element.is(Condition.disabled), String.format("Элемент [%s] доступен", elementName));
}
 
示例8
/**
 * Выбор из списка со страницы любого случайного элемента и сохранение его значения в переменную
 */
@Когда("^выбран любой элемент из списка \"([^\"]*)\" и его значение сохранено в переменную \"([^\"]*)\"$")
@When("^random element in \"([^\"]*)\" list has been selected and its value has been saved to the \"([^\"]*)\" variable$")
public void selectRandomElementFromListAndSaveVar(String listName, String varName) {
    List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName);
    SelenideElement element = listOfElementsFromPage.get(getRandom(listOfElementsFromPage.size()));
    element.shouldBe(Condition.visible).click();
    akitaScenario.setVar(varName, akitaScenario.getCurrentPage().getAnyElementText(element).trim());
    akitaScenario.write(String.format("Переменной [%s] присвоено значение [%s] из списка [%s]", varName,
        akitaScenario.getVar(varName), listName));
}
 
示例9
private void openSearch() {
    Selenide.$("#it-test-search-field").shouldNot(Condition.visible);
    Selenide.$("#it-test-search-button").click();
    sleep(1000);
    Selenide.$("#it-test-search-field").should(Condition.visible);
    Selenide.executeJavaScript("document.getElementById(\"it-test-search-field\").value = \"Header\"");
    sleep(1000);
    $(byText("Header1")).should(Condition.visible);
    $(byText("Description1")).should(Condition.visible);
}
 
示例10
/**
 * Проверка того, что элемент исчезнет со страницы (станет невидимым) в течение DEFAULT_TIMEOUT.
 * В случае, если свойство "waitingCustomElementsTimeout" в application.properties не задано,
 * таймаут равен 15 секундам
 */
@Тогда("^ожидается исчезновение элемента \"([^\"]*)\"")
@Then("^waiting for the element named \"([^\"]*)\" to disappear$")
public void elemDisappered(String elementName) {
    akitaScenario.getCurrentPage().waitElementsUntil(
            Condition.disappears, DEFAULT_TIMEOUT, akitaScenario.getCurrentPage().getElement(elementName));
}
 
示例11
@Override
public void shouldHavePlaceholder(String value) {
    Condition condition = Condition.attribute("placeholder", value);

    SelenideElement elm = element().parent().$(".n2o-input-mask");
    if (elm.exists()) elm.shouldHave(condition);
    else element().$(".n2o-editable-cell .n2o-editable-cell-text").shouldHave(condition);
}
 
示例12
/**
 * Проверка того, что элементы, не помеченные аннотацией "Optional", отображаются,
 * а элементы, помеченные аннотацией "Hidden", скрыты.
 */
protected void isAppeared() {
    String timeout = loadProperty("waitingAppearTimeout", WAITING_APPEAR_TIMEOUT_IN_MILLISECONDS);
    getPrimaryElements().parallelStream().forEach(elem ->
            elem.waitUntil(Condition.appear, Integer.valueOf(timeout)));
    getHiddenElements().parallelStream().forEach(elem ->
            elem.waitUntil(Condition.hidden, Integer.valueOf(timeout)));
    eachForm(AkitaPage::isAppeared);
}
 
示例13
/**
 * Проверка того, что элемент не отображается на странице
 */
@Тогда("^(?:поле|выпадающий список|элемент) \"([^\"]*)\" не отображается на странице$")
@Then("^(?:field|drop-down list|element) named \"([^\"]*)\" is not visible$")
public void elementIsNotVisible(String elementName) {
    akitaScenario.getCurrentPage().waitElementsUntil(
            not(Condition.appear), DEFAULT_TIMEOUT, akitaScenario.getCurrentPage().getElement(elementName)
    );
}
 
示例14
public StandardTableHeader getSurnameHeader() {
    return getTable().columns().headers().header(Condition.text("Фамилия"));
}
 
示例15
@Override
public void shouldHaveText(String text) {
    element().shouldHave(Condition.text(text));
}
 
示例16
@Override
public void shouldHaveTitle(String text) {
    element().$(".modal-header .modal-title")
            .shouldHave(Condition.text(text));
}
 
示例17
@Override
public void removeAllButtonShouldBeExist() {
    removeAllButton().shouldBe(Condition.exist);
}
 
示例18
@Override
public void shouldBeSelected(int row) {
    element().$$(".n2o-advanced-table-tbody .n2o-table-row").get(row).shouldHave(Condition.cssClass("table-active"));
}
 
示例19
@Override
public void shouldBeEmpty() {
    element().shouldBe(Condition.empty);
}
 
示例20
private SelenideElement filterDropdown() {
    return element().$(".n2o-advanced-table-filter-dropdown").shouldBe(Condition.exist);
}
 
示例21
@Override
public void labelShouldBeDashed() {
    element().$(".list-text-cell__trigger_dashed").shouldBe(Condition.exist);
}
 
示例22
@Override
public void click() {
    element().$(".btn").shouldBe(Condition.exist).click();
}
 
示例23
@Override
public void shouldBeChecked() {
    element().shouldBe(Condition.checked);
}
 
示例24
@Override
public void shouldHaveText(int index, String val) {
    element().$$(".badge").get(index).shouldHave(Condition.text(val));
}
 
示例25
public static Condition containOptions(String... options) {
    return new ContainOptions(Arrays.asList(options));
}
 
示例26
@Override
public void shouldBeEmpty() {
    progressBar().shouldNot(Condition.exist);
}
 
示例27
public <T extends Field> T field(String label, Class<T> componentClass) {
    return component(elements().findBy(Condition.text(label)), componentClass);
}
 
示例28
@Override
public void shouldBeCollapsed() {
    element().$(".rc-collapse-content").should(Condition.cssClass("rc-collapse-content-inactive"));
}
 
示例29
default T shouldNotBe(Condition... condition) {
    getDelegate().shouldNotBe(condition);
    return (T) this;
}
 
示例30
@Override
public void shouldHaveValue(String value) {
    element().shouldHave(Condition.text(value));
}