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));
}