Всем привет!
Мы выпустили новую версию Selenide 4.7 с самой долгожданной фичей за последний год.
Теперь-то уж заживём!
Встроенный WebDriverManager
Теперь Selenide поставляется вместе со встроенным WebDriverManager.
Это такая библиотека, которая умеет автоматически скачивать свежий бинарник вебдрайвера.
То есть вам больше не нужно заботиться о том, откуда скачать geckodriver.exe
или chromedriver.exe
и в какую папку положить, чтобы он оказался в PATH
.
Selenide позаботится об этом.
Есть один нюанс. WebDriverManager сработает только в том случае, если:
- Вы используете один из поддерживаемых им драйверов:
chrome
,edge
,internet explorer
,opera
,phantomjs
,marionette
илиgecko
. - Какой-нибудь ваш код ещё не успел установить системное свойство
webdriver.chrome.driver
,webdriver.edge.driver
,webdriver.ie.driver
,webdriver.opera.driver
,phantomjs.binary.path
илиwebdriver.gecko.driver
.
Если вы используете какой-нибудь другой вебдрайвер (или кастомный WebDriverProvider
), WebDriverManager просто не запустится, и у вас всё будет по-прежнему.
Если у вас ещё будут вопросы, не забывайте, что единственный достоверный источник информации - ИСХОДНЫЙ КОД!
Спасибо Сергею Пирогову и Борису Осипову за этот pull request
Добавили метод prompt()
Как вы знаете, в JavaScript есть три нативных диалоговых окошка: alert
, confirm
и prompt
.
Поддержка двух первых была в Selenide уже давно, а третьего не было.
Конечно, для этого была своя причина: использование этих диалогов в современных веб-приложениях считается моветоном, есть миллион JS-библиотек, которые делают это в тыщу раз красивее.
Но всё же пробел исправлен:
@Test
public void canSubmitPromptDialog() {
$("#login").click();
prompt("Please input your username", "Aegon Targaryen");
prompt("Please input your password", "qwerty");
$("#message").shouldHave(text("Hello, Aegon Targaryen!"));
}
Спасибо Anton Aftakhov за PR 591
Добавили путь к html-файлу в сообщение об ошибке
Одна из самых удобных фишек Selenide в том, что он автоматически делает скриншот при падении теста и добавляет путь к файлу скриншота к сообщению об ошибке. Очень удобно смотреть отчёты об упавших тестах: один клик - и ты уже видишь скриншот, и для этого не нужно запускать какие-нибудь там Thycidides, Allure, Report Portal и прочие сложные штуки. Простые вещи - самые надёжные.
Но есть ещё одна фишка, о который не все знали. Вместе со скриншотом Selenide также автоматически сохраняет html-код странички, на которой произошла ошибка. Но нигде не говорит об этом. Люди видят только путь к скриншоту и не догадываются, что есть ещё и html.
Этот пробел и исправил hyunil-shin в PR 590. Теперь сообщение об ошибке будет содержать оба файла:
Element should have text 'Goodbye, Aegon Targaryen!' {#message}
Element: '<div id="message">Hello, Aegon Targaryen!</div>'
Screenshot: file:/.../build/reports/.../canSubmitPromptDialog/1507061177250.0.png
Page source: file:/.../build/reports/.../canSubmitPromptDialog/1507061177250.0.html
Timeout: 4 s.
Исправили путаницу со скриншотами при параллельном запуске тестов
Руководство ФБР долгое время пыталось замолчать это, но в Selenide была одна неприятная бага. А именно, при параллельном запуске тестов он мог путать скриншоты. Всё из-за злостного использования статической переменной.
Хорошо, что теперь с этим покончено. Спасибо Jane Riabchenko за PR 595
А статические переменные мы планируем искоренить в большом рефакторинге в версии Selenide 5.0
Обновились до selenium-java 3.5.3
За это время уже успел выйти selenium-java 3.6.0, на него мы обновимся в Selenide 4.8, который выйдет уже совсем скоро.
Обновились до browsermob-core 2.1.5 (и littleproxy 1.1.0-beta-bmp-17)
Это может затронуть только тех, кто скачивает файлы через прокси-сервер. Хотя нет, это вообще никого не затронет. Забудьте.
Обновили htmlunit с 2.24 до 2.27
Фиг знает, что там улучшилось, но спасибо Alexander Kotlyar за PR 609.
Реклама
Приходите 8-9 декабря на конференцию Гейзенбаг в Москве!
Я буду там выступать с двумя докладами:
- Flaky tests - полезность 80 lvl
- Selenide Puzzlers - весёлость 80 lvl
Там и познакомимся!
ru.selenide.org
30.09.17