Selenium — это инструмент для автоматизации тестирования веб-приложений. Он позволяет тестировщикам создавать сценарии, которые имитируют действия пользователя, такие как клики, ввод текста и навигация по страницам.
WebDriver — интерфейс, который управляет браузерами. Он запускает браузеры и выполняет автоматизированные действия, как если бы это делал пользователь.
WebDriverManager — облегчает управление драйверами браузеров, автоматически определяя и загружая их последнюю версию.
Ожидания используются для синхронизации тестов с веб-страницей.
Implicit Wait — задает глобальное время ожидания перед каждым шагом теста. Используется редко, так как увеличивает общее время выполнения теста.
Explicit Wait — глобальное ожидание, пока я не получу excepted condition (toBeClickable, toBeVisible). Пропишу его в BasePage, если не в BasePage, то он будет относится к WebDriver'у.
Чтобы проверить отсутствие элемента на странице, можно использовать findElements(). Если список пуст, значит элемент отсутствует:
List<WebElement> elements = driver.findElements(By.xpath("your_xpath"));
Assert.assertTrue(elements.isEmpty());
Actions — это класс, предоставляющий расширенные действия с элементами, такие как двойной клик, перетаскивание и клик правой кнопкой мыши. Также для выполнения JavaScript-кода можно использовать JavaScriptExecutor.
Пример:
Actions actions = new Actions(driver);
actions.doubleClick(element).perform();
Параллельное выполнение тестов позволяет ускорить тестирование, выполняя тесты одновременно. Это достигается с помощью TestNG, где параллелизация настраивается в testng.xml:
<suite name="ParallelSuite" parallel="tests" thread-count="4">
<test name="Test1">
<classes>
<class name="com.example.TestClass"/>
</classes>
</test>
</suite>
Flaky Tests — это тесты, которые иногда проходят, а иногда нет, без изменений в коде. Причины могут быть связаны с нестабильными локаторами, зависимостями от времени загрузки страницы или некорректными ожиданиями. Решение может включать использование явных ожиданий и ретраев (повторных попыток).
Assertions — используются для проверки условий в тестах. Они помогают убедиться, что результат теста соответствует ожиданиям. Популярные методы:
Selenide — это фреймворк для автоматизации веб-тестирования, построенный поверх Selenium. Он упрощает написание тестов и автоматически обрабатывает ожидания элементов.
Примеры методов Selenide:
Selenoid — это инструмент для параллельного выполнения тестов в изолированных средах, работающий на базе Docker. Он позволяет запускать тесты на различных браузерах и операционных системах.
Основная цель — обеспечить изоляцию тестов и параллельное выполнение, что повышает стабильность и скорость тестирования.