Selenium WebDriver - отличный инструмент. Но это не инструмент для тестирования. Это инструмент для управления браузером.
А Selenide - удобный инструмент для автоматических тестов, построенный на базе Selenium WebDriver.
Да, есть и другие “обёртки” для Selenium webdriver. Но нам кажется, что все они не решают главные проблемы UI тестов. А именно, нестабильность тестов, веб-приложения с динамическим контентом, JavaScript, Ajax, таймауты и т.д. Selenide был создан для решения этих проблем.
А ещё Selenide очень простой для изучения. С ним каждый может начать писать автоматические тесты буквально за 5 минут, даже те, кто не имеет никакого опыта в тестировании. И даже разработчики!
Прежде всего, Selenide помогает вам делать стабильные тесты, решая (почти) все проблемы с таймаутами и аяксом.
Selenide предлагает лаконичный API для использования Selenium WebDriver в UI тестах:
Подробности ниже.
Вам больше не надо явно открывать браузер и думать о том, где его хранить и когда закрывать. Selenide сам откроет браузер, когда он впервые понадобится, и закроет, когда он больше не будет нужен.
Selenide предлагает лаконичный и мощный API, который поможет вам писать короткие и хорошо читаемые тесты. Selenide есть масса удобных методов для заполнения полей, выбора чекбоксов, выпадающих списков, поиска элементов по тексту и т.д.
@Test
public void canFillComplexForm() {
open("/client/registration");
$(By.name("user.name")).val("johny");
$(By.name("user.gender")).selectRadio("male");
$("#user.preferredLayout").selectOption("plain");
$("#user.securityQuestion").selectOptionByText("What is my first car?");
}
При тестировании современных динамичных приложений, полных аякса и яваскрипта, нам часто нужно подождать, пока изменится состояние какого-либо элемента. Selenide делает это из коробки. Автоматически. Вам даже не нужно задумываться о том, требуется ли ожидание в том или ином месте.
Все нижеследующие методы могут немножко подождать, если условие не выполнено сразу (по умолчанию до 4 секунд):
$("#topic").should(appear);
$("#topic").shouldBe(visible);
$("#topic").should(disappear);
$("h1").shouldHave(text("Hello"));
$(".message").shouldNotHave(text("Wait for loading..."));
$(".password").shouldNotHave(cssClass("errorField"));
$(".error").should(disappear);
Когда тест падает, Selenide автоматически делает скриншот. Вам ничего не нужно для этого делать.
Это лишь краткий обзор. В этом видео можно узнать узнать больше о преимуществах Selenide: