Selenide is a Java framework for test automation powered by Selenium WebDriver that brings the following advantages:
- Concise fluent API for tests
- Ajax support for stable tests
- Powerful selectors
- Simple configuration
(Some examples below also use BDDAssertions from AssertJ).
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>5.14.2</version>
<scope>test</scope>
</dependency>-Dwebdriver.chrome.driver=tools/webdriver/chromedriver85.exe
-Dselenide.baseUrl=https://example.com/app
-Dselenide.browser=chrome
-Dselenide.startMaximized=true
import static com.codeborne.selenide.Condition.*;
import static com.codeborne.selenide.CollectionCondition.*;
import static com.codeborne.selenide.Selectors.*;
import static com.codeborne.selenide.Selenide.*;open("/");
$(withText("User")).click();
$(byText("User")).click();
$(byClassName("ui-columntoggler")).click()
$(byTagName("button")).click()
$(byCssSelector("main h1")).shouldHave(text("Users"));
$(by("placeholder", "Enter firstname")).sendKeys("julia");
$(byTagName("main")).find(byText("Roles")).click();
$$(byTagName("h1")).findBy(text("FAQ")).shouldBe(visible);
then(title()).contains("Anmeldung");
- caution:
title()does not wait for any potential AJAX responses here
$(byText("Populations")).shouldBe(visible);
$(byTagName("h1")).should(matchText("Entry [0-9]+"))
$$(byTagName("h2")).shouldHave(sizeGreaterThanOrEqual(5));
final WebElement rolesColumnHeader = $(byCssSelector(".ui-datatable thead"))
.find(byText("Roles"));
actions().click(rolesColumnHeader)
.sendKeys(Keys.TAB)
// filter drop down menu by typing starting letters
.sendKeys("admin")
.build().perform();