Mi amore, mi amore!
Сегодня вечером мой экстра зарелизил Selenide 7.8.0.
Интересно, мой интра завтра утром откроет этот текст и узнает ли про новые возможности в Selenide?
- Новые функции для Appium
- Удалять фильтры из прокси
- Аннотация
@ShadowHost
- Комбинированные атрибуты в отчётах
- Обновились на Selenium 4.30.0
- Новости
Новые функции для Appium
Для фанатов мобилок мы добавили три функции:
- активировать приложение,
- остановить приложение,
- перезапустить приложение.
Все эти методы можете найти в классе SelenideAppium
:
import static com.codeborne.selenide.appium.SelenideAppium.*;
activateApp("com.saucelabs.mydemoapp.rn");
terminateApp("com.saucelabs.mydemoapp.rn");
terminateApp("com.saucelabs.mydemoapp.rn", ofSeconds(10)); // with timeout
relaunchApp("com.saucelabs.mydemoapp.rn");
relaunchApp("com.saucelabs.mydemoapp.rn", ofSeconds(20)); // with timeout
Спасибо Aliaksandr Rasolka за PR 2964.
Удалять фильтры из прокси
Ровно 7 лет назад мы добавили возможность добавлять перехватчики запросов-ответов в селенидовский прокси.
С их помощью вы могли логировать запросы, мокать или исправлять ответы сервера, добавлять заголовки, обходить авторизацию и даже тестировать безопасность.
А теперь появилась возможность удалять эти фильтры.
Это на тот случай, если вам нужен какой-то фильтр лишь в одном тесте, а в других он мешает.
Как всегда, пример можете подсмотреть в тестах самого селенида:
// добавляем фильтры
getSelenideProxy().addRequestFilter("proxy-usages.request", ...);
getSelenideProxy().addResponseFilter("proxy-usages.response", ...);
// ... тут ваш тест ...
// удаляем фильтры, которые больше не нужны
getSelenideProxy().removeRequestFilter("proxy-usages.request");
getSelenideProxy().removeResponseFilter("proxy-usages.response");
Аннотация @ShadowHost
Лет 5 назад мы добавили методы для работы с Shadow DOM.
Они позволяли искать элементы внутри Shadow DOM через стандартный доллар:
$(shadowCss("#anyButton", "#shadow-host")).click();
А потом добавили ещё и рекурсивный поиск по shadow dom.
А теперь то же самое можно делать не только через доллар, но ещё и через аннотацию @ShadowHost
в пэдж обжектах:
class PageObject {
@ShadowHost(@FindBy(id = "shadow-host"))
@FindBy(css = "#inputInShadow")
SelenideElement input;
@ShadowRoot
@FindBy(css = "#shadow-container")
ShadowContainer shadowContainer;
}
Спасибо Ilya Koshaleu за PR 2968.
Причесали комбинированные атрибуты в отчётах
Пару лет назад мы добавили комбинированные атрибуты для мобилок.
Почитайте тот пресс-релиз, вот же были времена, писали тексты!
А теперь мы заметили, что они не очень выглядят в отчётах, и подправили.
Например, вот такая проверка:
$.shouldHave(attribute(
android("content-desc").ios("name"),
"Чёртова картошка по выходным"
));
Раньше выглядела в отчётах так:
Element should have attribute
com.codeborne.selenide.appium.conditions.CombinedAttribute@47b530e0
="Чёртова картошка по выходным"
Ну, ужас, но не ужас-ужас-ужас!
А теперь будет так:
Element should have attribute @content-desc|@name="Чёртова картошка по выходным"
См. issue 2967 и PR 2971.
Обновились на Selenium 4.30.0
Тут всё понятно, подняли Selenium с 4.29.0 до 4.30.0, в т.ч. подняли версию CDP с 133 до v134.
См. PR 2979.
Новости
- Пост Selenide выпустил новую версию 7.7 от Артура Шевченко из Yalantis
- Видос Selenide: Поиск элемента по имени класса на канале QA Automation и SDET
- Книга Java Testing Toolbox от Philip Riecks, в которой есть и глава про Selenide!
- Видос Selenium & Selenide с Нуля на канале IT UNLOCKED
- Пост Про Selenide на корейском
Por favore, por favore, expresso upgrado corneo!
ru.selenide.org
02.04.25