Всех с Новым Годом!
Новый год - новый релиз. Встречайте Selenide 5.6.1.
Добавили метод Selenide.executeAsyncScript()
Нет такого человека, который ни разу не запускал бы метод Selenide.executeJavaScript()
.
JavaScript позволяет выйти на новый уровень сумрака в автоматизации.
А теперь мы добавили ещё и метод Selenide.executeAsyncScript()
. Правда, я плохо представляю, в каких случаях он
может понадобится, но если кому надо - теперь он есть.
Обратите внимание, его использование сложнее, чем обычного executeJavaScript()
.
После исполнения асинхронного JS кода нужно вызвать callback с результатом. А callback нужно получить из последнего аргумента:
long value = (Long) Selenide.executeAsyncJavaScript(
"var callback = arguments[arguments.length - 1]; " +
"setTimeout(function() { " +
" // Вот тут любая асинхронная чертовщина: " +
" ... " +
" // и в конце возврат в селениум: " +
" callback(10);" +
"}, 5000);"
);
assertThat(value).isEqualTo(10);
См. issue 1030.
Спасибо Thierry Ygé за PR 1031.
Научили Selenide скачивать через прокси файлы без заголовка Content-Disposition
Как вы знаете, Selenide умеет скачивать файлы через свой прокси.
Но при скачивании он перехватывал только те ответы сервера, в которых присутствует заголовок Content-Disposition
(чтобы узнать оттуда имя скачиваемого файлы).
Как выяснилось, этот заголовок необязателен. Файлы могут скачиваться и без него.
Теперь селенидовский прокси стал умнее.
- Прежде чем скачать файл, он ждёт, пока закончатся все предыдущие запросы-ответы между браузером и сервером.
- Кликает кнопку скачивания
- Перехватывает ВСЕ запросы-ответы между браузером и сервером (вне зависимости от заголовков).
- И пытается понять, какой из них больше всего похож на скачивание файла.
А имя файла (в случае ответа без заголовка Content-Disposition
) берётся просто из URL.
См. issue 1034 и PR 1035.
Исправили метод WebDriverRunner.using()
В октябре мы добавили метод using
.
Судя по всему, вы ещё не успели его попробовать, потому что никто не пожаловался на багу: этот метод закрывал
вебдрайвер после использования (хотя не должен). Ну вот, эту багу мы исправили.
См. коммит 4d1b19972d.
Обновились на WebDriverManager 3.8.0
там было исправлено несколько ошибок, в т.ч. моего авторства :)
См. changelog.
В частности, WDM теперь должен корректно работать без доступа в интернет.
Новости
- Огонь! Selenious - порт селенида на .NET
Ребята обещали, что проект рабочий, они его в реальном проекте используют. - Статья от LambdaTest: Selenide Tests With LambdaTest – Online Selenium Grid For Automated Cross Browser Testing
- Моё видео с октябрьской конференции Cyprus Quality Conference Threesome: Selenide for Web, Android and iOS. Не переживайте, в феврале я его буду рассказывать по-русски на SeleniumCamp.
- Если кто пропустил, серия постов Selenide Advent Calendar
ru.selenide.org
14.01.20