@Override public SelenideElement execute(SelenideElement proxy, WebElementSource locator, Object[] args) { SelenideElement target; if (args[0] instanceof String) { target = ElementFinder.wrap(locator.driver(), By.cssSelector((String) args[0])); } else if (args[0] instanceof WebElement) { target = WebElementWrapper.wrap(locator.driver(), (WebElement) args[0]); } else { throw new IllegalArgumentException("Unknown target type: " + args[0] + " (only String or WebElement are supported)"); } target.shouldBe(visible); new Actions(locator.driver().getWebDriver()).dragAndDrop(locator.getWebElement(), target).perform(); return proxy; } }
public JList shouldBe(Condition... conditions) { Selenide.$(getWebElement()).shouldBe(conditions); return this; }
public J shouldBe(Condition... conditions) { Selenide.$(getWebElement()).shouldBe(conditions); return this; }
public JList shouldBe(Condition... conditions) { Selenide.$(getWebElement()).shouldBe(conditions); return this; }
public J shouldBe(Condition... conditions) { Selenide.$(getWebElement()).shouldBe(conditions); return this; }
/** * Выбор n-го элемента из списка со страницы * Нумерация элементов начинается с 1 */ @Когда("^выбран (\\d+)-й элемент в списке \"([^\"]*)\"$") public void selectElementNumberFromList(Integer elementNumber, String listName) { List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName); SelenideElement elementToSelect; Integer selectedElementNumber = elementNumber - 1; if (selectedElementNumber < 0 || selectedElementNumber >= listOfElementsFromPage.size()) { throw new IndexOutOfBoundsException( String.format("В списке %s нет элемента с номером %s. Количество элементов списка = %s", listName, elementNumber, listOfElementsFromPage.size())); } elementToSelect = listOfElementsFromPage.get(selectedElementNumber); elementToSelect.shouldBe(Condition.visible).click(); }
public void clickOnWizardTab(String tabName){ $(By.linkText(tabName)) .shouldBe(Condition.visible) .click(); } }
public String getTabBadgeText(String resourceKey) { SelenideElement element = getParentElement().$(Schrodinger.bySchrodingerDataResourceKey(resourceKey)); element.shouldBe(Condition.visible); SelenideElement badge = element.$(Schrodinger.byDataId("small", "count")); badge.shouldBe(Condition.visible); return badge.getValue(); }
/** * Выбор n-го элемента из списка со страницы и сохранение его значения в переменную * Нумерация элементов начинается с 1 */ @Тогда("^выбран (\\d+)-й элемент в списке \"([^\"]*)\" и его значение сохранено в переменную \"([^\"]*)\"$") public void selectElementNumberFromListAndSaveToVar(Integer elementNumber, String listName, String varName) { List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName); SelenideElement elementToSelect; Integer selectedElementNumber = elementNumber - 1; if (selectedElementNumber < 0 || selectedElementNumber >= listOfElementsFromPage.size()) { throw new IndexOutOfBoundsException( String.format("В списке %s нет элемента с номером %s. Количество элементов списка = %s", listName, elementNumber, listOfElementsFromPage.size())); } elementToSelect = listOfElementsFromPage.get(selectedElementNumber); elementToSelect.shouldBe(Condition.visible).click(); akitaScenario.setVar(varName, akitaScenario.getCurrentPage().getAnyElementText(elementToSelect).trim()); }
public void assertGameIsWon() { $("#gameWin").shouldBe(visible); }
public void assertGameIsLost() { $("#gameLost").shouldBe(visible); }
/** * Выбор из списка со страницы любого случайного элемента */ @Когда("^выбран любой элемент в списке \"([^\"]*)\"$") public void selectRandomElementFromList(String listName) { List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName); listOfElementsFromPage.get(getRandom(listOfElementsFromPage.size())) .shouldBe(Condition.visible).click(); akitaScenario.write("Выбран случайный элемент: " + listOfElementsFromPage); }
/** * Выбор из списка со страницы любого случайного элемента и сохранение его значения в переменную */ @Когда("^выбран любой элемент из списка \"([^\"]*)\" и его значение сохранено в переменную \"([^\"]*)\"$") 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)); }
private SelenideElement verifyAndFetchActiveTab(SelenideElement link) { link.shouldBe(Condition.visible); link.click(); SelenideElement li = link.parent(); li.shouldHave(Condition.cssClass("active")); return li.parent().parent().$(By.cssSelector(".tab-pane.active")); } }
private void clickMenuItem(String topLevelMenuKey, String mainMenuKey, String menuItemKey) { SelenideElement topLevelMenu = $(Schrodinger.byDataResourceKey(topLevelMenuKey)); topLevelMenu.shouldBe(Condition.visible); SelenideElement topLevelMenuChevron = topLevelMenu.parent().$(By.tagName("i")); if (!topLevelMenuChevron.has(Condition.cssClass("fa-chevron-down"))) { topLevelMenu.click(); topLevelMenuChevron.shouldHave(Condition.cssClass("fa-chevron-down")).waitUntil(Condition.cssClass("fa-chevron-down"), MidPoint.TIMEOUT_DEFAULT_2_S); } SelenideElement mainMenu = topLevelMenu.$(Schrodinger.byDataResourceKey(mainMenuKey)); mainMenu.shouldBe(Condition.visible); if (menuItemKey == null) { mainMenu.click(); return; } SelenideElement mainMenuLi = mainMenu.parent().parent(); if (!mainMenuLi.has(Condition.cssClass("active"))) { mainMenu.click(); mainMenuLi.waitUntil(Condition.cssClass("active"),MidPoint.TIMEOUT_DEFAULT_2_S).shouldHave(Condition.cssClass("active")); } SelenideElement menuItem = mainMenu.$(Schrodinger.byDataResourceKey(menuItemKey)); menuItem.shouldBe(Condition.visible); menuItem.click(); } }
@Test public void userWinsWhenAllLettersAreGuessed() { letter("S").click(); letter("O").click(); letter("F").click(); letter("A").click(); $("#gameWin").shouldBe(visible); }
@Test public void search_selenide_in_google() { open("https://google.com/ncr"); $(By.name("q")).val("selenide").pressEnter(); $$("#ires .g").shouldHave(sizeGreaterThan(1)); $("#ires .g").shouldBe(visible).shouldHave( text("Selenide: concise UI tests in Java"), text("selenide.org")); } }
@Test public void userHasNoMoreThan6Tries() { letter("B").click(); letter("D").click(); letter("E").click(); letter("G").click(); letter("H").click(); letter("I").click(); letter("J").click(); letter("B").shouldHave(cssClass("nonused")); $("#gameLost").shouldBe(visible); }