Добрый вечер!
Джо Байдена спросили, считает ли он $$.as
киллер-фичей. «Ммм, хмм, да», — ответил Байден.
Это сдвоенный обзор на релиз Selenide 5.20.0 и Selenide 5.20.1.
Добавили методы для операций с буфером обмена
Selenide.clipboard().setText("111");
assertEquals("Hello World", Selenide.clipboard().getText());
Имейте в виду, что на линуксе буфер обмена не будет работать без иксов. Либо запускайте xvfb, либо ещё как-то выкручивайтесь.
Спасибо Dmitriy Budim за PR 1409.
NB! Эти методы переопределены в плагине selenide-selenoid, так что они корректно работают с селеноидом. Для него мы тоже выпустили версию 1.1.0.
Добавили режим headless для браузера Microsoft Edge
Раньше настройка Configuration.headless
срабатывала только для Chrome и Firefox, а теперь ещё и для Edge.
(Браузеры IE, Opera и Safari, насколько я знаю, до сих пор не поддерживают headless режим.)
См. issue 1422 и PR 1424.
Добавили метод $$.as() для задания алиаса коллекциям
Как вы помните, в Selenide 5.17.0 мы добавили возможность задавать единичным элементам “понятное” имя. Теперь имя можно задавать и коллекциям:
$(By.xpath("/long/ugly/xpath[1][2][3]")).as("Login button").shouldBe(visible);
$$(By.xpath("/long/ugly/xpath[1][2][3]")).as("Login buttons").shouldHave(size(2));
См. issue 1389 и PR 1431.
NB! Не торопитесь использовать эту возможность. Лично я воспринимаю её как “хак последней надежды”.
В отчёте всегда лучше видеть настоящий локатор, чем кем-то придуманное имя, которое всегда может оказаться:
- Обманчивым
- Устаревшим
- Вводящим в заблуждение
Лучше инвестируйте свои усилия в то, чтобы использовать читаемые локаторы. Ну и грамотно называть переменные и методы. Вот где сила, брат!
Добавили проверку для коллекций containExactTextsCaseSensitive
Существующий метод $$.shouldHave(texts("a", "b", "c"))
проверяет, что в коллекции ровно эти элементы и никаких больше. А иногда хочется менее строгой проверки. Например, нужно проверить, что в списке торгуемых валют точно
есть RUB, EUR, USD - и какие угодно ещё.
Теперь для этого есть метод:
$$.should(containTexts("RUB", "EUR", "USD"));
Спасибо Oleg Berezhnoy за PR 1426.
UPD В оперативно вышедшей Selenide 5.20.1 его переименовали в
$$.should(containExactTextsCaseSensitive("RUB", "EUR", "USD"));
Спасибо Oleg Berezhnoy за PR 1438 и PR 1439.
Починили утерянные опции FirefoxOptions
В некоторых ситуации некоторые настройки Firefox терялись, теперь не теряются. Опции нашлись.
См. issue 1436. Спасибо Dmitriy Budim за PR 1437.
Убрали логирование “поисковых” методов
В SelenideElement есть несколько методов для поиска других элементов:
$.findAll()
$.parent()
$.sibling()
$.preceding()
$.lastChild()
$.closest()
Такие методы оказывались в отчёте дважды: сначала при их вызове, а потом - при вызове любого метода на найденном элементе. Теперь мы это дублирование убрали.
Спасибо Pavel Fokin за PR 1428.
Доска объявлений
Ура, новый сезон конференций открыт! Буквально через неделю-две начинается:
- У кого нет денег на Heisenbug и JPoint - приходите 27 марта на бесплатный фестиваль TechTrain, программа там очень многообещающая.
- Я, например, планирую послушать “Что мобильным разработчикам в IT-индустрии неведомо”
- и “Ловушки коллективного владения кодом”.
- И конечно, “Какие тулы ты бы взял на удаленку” от ведущих “Ошибки выжившего” Севы и Артёма обещает стать хитом.
-
А 6-9 апреля грядёт наш любимый Heisenbug.
У меня там будет заключительный доклад эпопеи про флейки тесты “Flaky tests. Метод” и продолжение мастер-класса “Как начать свой проект автоматизации с нуля”.
А послушать я хочу как минимум мастер-класс гуру юзабилити Виталия Фридмана “От birthday selector до inline validation: Всё, что нужно знать о веб-формах” и много чего ещё вкусненького.
-
А 13-17 апреля пройдёт конференция JPoint
Она скорее для разработчиков, и на ней я тоже успею засветиться в мастер-классе по парному программированию.
-
А ещё 29 мая будет новосибирский Codefest
Там у меня будет доклад про “Трюки с javascript в автотестах”.
Приходите, всё равно ж делать нечего на карантине!
ru.selenide.org
23.03.21