Selenide для начинающих: полный гайд по автоматизации тестирования в 2026
Изучаем Selenide с нуля: установка, первые тесты, Page Object Model, Container, кастомные проверки, работа с элементами. Практический туториал для Java QA Automation.
Selenide для Java QA Automation: полный туториал 2026
Selenide — обёртка над Selenium WebDriver которая упрощает написание UI-автотестов на Java. Основные преимущества: автоматические ожидания, читаемый синтаксис, встроенные скриншоты при падении тестов, богатая библиотека проверок. Это стандарт де-факто для Java QA Automation в корпоративном секторе.
Установка и настройка Selenide
Добавьте зависимости в pom.xml:
1<dependencies>
2 <dependency>
3 <groupId>com.codeborne</groupId>
4 <artifactId>selenide</artifactId>
5 <version>7.0.4</version>
6 <scope>test</scope>
7 </dependency>
8 <dependency>
9 <groupId>org.junit.jupiter</groupId>
10 <artifactId>junit-jupiter</artifactId>
11 <version>5.10.1</version>
12 <scope>test</scope>
13 </dependency>
14</dependencies>Первый тест на Selenide
1import static com.codeborne.selenide.Selenide.*;
2import static com.codeborne.selenide.Condition.*;
3
4@Test
5public void loginTest() {
6 open("https://example.com/login");
7 $("#email").setValue("user@example.com");
8 $("#password").setValue("password");
9 $("button[type=submit]").click();
10 $("h1").shouldHave(text("Dashboard"));
11}Основные методы работы с элементами в Selenide
1// Поиск элементов
2$("#id").click(); // по ID
3$(".class-name").setValue("text"); // по CSS-классу
4$("[data-test=button]").click(); // по атрибуту
5$(byText("Click me")).click(); // по тексту
6
7// Работа с коллекциями
8$$("li").shouldHave(size(5)); // размер коллекции
9$$("li").first().click(); // первый элемент
10$$("li").get(2).click(); // элемент по индексу
11
12// Проверки состояния
13$("#button").shouldBe(visible);
14$("#input").shouldBe(enabled);
15$("#element").shouldHave(text("Expected text"));Page Object Model с Selenide
Page Object Model — основной паттерн для структурирования UI-тестов. В Selenide он реализуется особенно элегантно благодаря встроенной поддержке.
1public class LoginPage {
2 private final SelenideElement emailField = $("#email");
3 private final SelenideElement passwordField = $("#password");
4 private final SelenideElement loginButton = $("button[type=submit]");
5
6 public LoginPage enterEmail(String email) {
7 emailField.setValue(email);
8 return this;
9 }
10
11 public LoginPage enterPassword(String password) {
12 passwordField.setValue(password);
13 return this;
14 }
15
16 public DashboardPage clickLogin() {
17 loginButton.click();
18 return new DashboardPage();
19 }
20
21 public DashboardPage loginAs(String email, String password) {
22 return enterEmail(email)
23 .enterPassword(password)
24 .clickLogin();
25 }
26}Кастомные проверки (Custom Conditions)
Selenide позволяет создавать собственные проверки для специфичной бизнес-логики. Это делает тесты более читаемыми и переиспользуемыми.
1public class CustomConditions {
2 public static Condition onlyDigits = new Condition("only digits") {
3 @Override
4 public boolean apply(Driver driver, WebElement element) {
5 return element.getText().matches("\\d+");
6 }
7 };
8
9 public static Condition validEmail = new Condition("valid email") {
10 @Override
11 public boolean apply(Driver driver, WebElement element) {
12 return element.getText().matches(
13 "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$");
14 }
15 };
16}
17
18// Использование в тесте
19$("#email-display").shouldBe(CustomConditions.validEmail);
20$("#phone-display").shouldBe(CustomConditions.onlyDigits);Лучшие практики Selenide
- ▸Используйте Page Object Model для структурирования тестов
- ▸Группируйте связанные элементы в Container
- ▸Создавайте кастомные проверки для специфичной бизнес-логики
- ▸Используйте fluent API для читаемости тестов
- ▸Не забывайте про автоматические ожидания — избегайте Thread.sleep()
- ▸Настраивайте глобальную конфигурацию один раз в @BeforeAll или Extension
Изучи Selenide на курсе Java QA Automation
На курсе Java QA Automation от ThreadQA Selenide изучается как основной инструмент UI-тестирования — от первого теста до сложных паттернов Page Object и Container. 90 уроков, 40 часов, практика на реальном приложении. Первые уроки бесплатно.