Вышла Selenide 4.7

Вышла Selenide 4.7

Встроенный WebdriverManager. Теперь-то уж заживём!
30.09.17

Всем привет!

Мы выпустили новую версию Selenide 4.7 с самой долгожданной фичей за последний год.

Теперь-то уж заживём!


Встроенный WebDriverManager

Теперь Selenide поставляется вместе со встроенным WebDriverManager. Это такая библиотека, которая умеет автоматически скачивать свежий бинарник вебдрайвера. То есть вам больше не нужно заботиться о том, откуда скачать geckodriver.exe или chromedriver.exe и в какую папку положить, чтобы он оказался в PATH. Selenide позаботится об этом.

Есть один нюанс. WebDriverManager сработает только в том случае, если:

  1. Вы используете один из поддерживаемых им драйверов: chrome, edge, internet explorer, opera, phantomjs, marionette или gecko.
  2. Какой-нибудь ваш код ещё не успел установить системное свойство webdriver.chrome.driver, webdriver.edge.driver, webdriver.ie.driver, webdriver.opera.driver, phantomjs.binary.path или webdriver.gecko.driver.

Если вы используете какой-нибудь другой вебдрайвер (или кастомный WebDriverProvider), WebDriverManager просто не запустится, и у вас всё будет по-прежнему.

Если у вас ещё будут вопросы, не забывайте, что единственный достоверный источник информации - ИСХОДНЫЙ КОД!

Спасибо Сергею Пирогову и Борису Осипову за этот pull request

См. также issue 133 и 418

Добавили метод 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 декабря на конференцию Гейзенбаг в Москве!

Я буду там выступать с двумя докладами:

Там и познакомимся!


Андрей Солнцев

ru.selenide.org

30.09.17