Selenide - крутой.
Я думаю, что большинство из вас в этом и так не сильно сомневается (список пользователей говорит сам за себя), но вот пару дней назад произошло маленькое событие, которое могло бы вообще пройти незамеченным для меня, но не прошло: я обновил в одном из своих проектов Selenide c 6.х до последней версии 7.2.1. И у меня перестал компилироваться код🙂 Казалось бы, первая мысль поругаться, но я, наоборот, пишу пост похвалы.
А дело все в том, что разработчики Selenide радикально упростили жизнь всем, кто писал или планирует написать свои кастомные CollectionCondition. Если раньше надо было переопределять 3 метода:
@Override
public void fail(CollectionSource collection, List<WebElement> elements, Exception lastError, long timeoutMs)
@Override
public boolean missingElementSatisfiesCondition()
@Override
public boolean test(List<WebElement> elements)
Причем, что делает второй и для чего он нужен технически я даже не понимал и просто писал
return false;🥲А еще, надо было писать свои классы исключений:
public class SpendsMismatch extends UIAssertionError А теперь все стало радикально просто, надо переопределить один метод :
@Override
public CheckResult check(Driver driver, List<WebElement> elements)
Назначение и сигнатура которого понятны даже если вообще в первый раз слышать про
CollectionCondition.Респект всем библиотекам и фреймворкам, которые упрощают свои API и делают их чистыми для понимания и написания кода. Selenide с каждым релизом, обрастая все новым функционалом, становится проще для понимания и расширения. И это хорошо.
Selenide - крутой.