Вышла Selenide 5.5.0

Вышла Selenide 5.5.0

SLF4J победил JUL
31.10.19

Всем привет!

А как вы празднуете Хэллоуин?

Мы вот выпустили Selenide 5.5.0 с несколькими обратно несовместимым изменениями.

СТРАШНО?


Перешли с JUL на SLF4J

Иногда селениду нужно записать в лог какие-то вспомогательные сообщения: “я нашёл бинарник браузера там-то”, “я не смог сохранить скриншот туда-то” и т.д.

До сих пор Селенид писал свои логи через стандартный Java механизм java.util.logging (т.н. JUL). Всем известно, что у него есть недостатки, и поэтому в Java мире давно появилась целая куча библиотек, в которых сложно разобраться: Log4J, Slf4j, Logback, JCL.

В общем, теперь будет так.

  • Slf4J - это “фасад”, что-то типа “интерфейса”. Селенид будет писать логи через него.
  • А Log4j, Logback, JCL - это реализации этого “интерфейса”. Наверное, есть и другие.

Вы можете сами решать, какую реализацию Slf4J вы используете в проекте. Наверняка в вашем проекте это уже давно решено, ведь как минимум WebDriverManager изначально писал свои логи через Slf4J.

Чтобы подключить одну из реализаций Slf4J, вы должны добавить в проект одну из зависимостей:

  • slf4j-log4j12-*.jar
  • logback-classic-*.jar
  • slf4j-simple-*.jar
  • slf4j-jdk14-*.jar
  • slf4j-jcl-*.jar
  • slf4j-nop-*.jar (ТОЛЬКО НЕ ЭТО! Это самый плохой вариант. Он будет игнорировать логи.)

NB! Подчёркиваю, что скорее всего такая зависимость у вас уже есть, и поэтому делать ничего не надо. Оно само заработает.

Если же зависимости всё-таки нет, вы увидите такое сообщение при запуске тестов (и не увидите логов селенида):

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Если вы его увидите, самое простое решение - это добавить такую строчку в ваш build.gradle:

testRuntimeOnly 'org.slf4j:slf4j-simple:1.7.28'

или в pom.xml:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.28</version>
    <scope>test</scope>
</dependency>

NB! Если не разобрались с Slf4j - не паникуйте, логи селенида не очень-то важны. Ошибки при падении тестов никуда не денутся. Речь идёт только про служебные INFO и WARNING логи типа INFO Using browser binary: /var/lib/opera.exe.

См. 923.

Спасибо Gleb Schukin за PR 926.


Удалили зависимости HtmlUnit и PhantomJS

Не переживайте, тесты должны по-прежнему работать на HtmlUnit и PhantomJS, просто селенид больше не тянет эти зависимости автоматически (ведь большинство людей давно перешли на headless chrome и headless firefox).

Если вы упорно хотите использовать HtmlUnit или PhantomJS, вам просто нужно будет добавить соответствующие зависимости в проект.

Спасибо Aliaksandr Rasolka за PR 1003 и PR 998.


Удалили встроенную поддержку браузера Safari

Но не волнуйтесь, вы всё ещё можете использовать Safari! См. инструкцию


Сделали метод $.execute(command) более универсальным

Раньше метод $.execute умел работать только с Command<SelenideElement>, а теперь - с любыми командами.

См. Issue 1000 и PR 1001.


Починили настройку holdBrowserOpen

.. которую мы сломали в Selenide 5.4.1. Теперь браузер снова остаётся открытым, и вы можете дебажить упавший тест.

См. 999 и PR 1005.


Снимаем скриншот в случае ошибки DialogTextMismatch

Как вы знаете, в селениде есть функция для проверки текста диалогового окна (alert или confirm):

confirm("Are you sure?");

Но при падении этой проверке селенид забывал сделать скриншот. Теперь делает.

См. 907. Спасибо Nick Holloway за PR 986.


Рефакторинг ScreenShotLaboratory

Хотя это всего лишь рефакторинг, т.е. на вас он не повлияет, я не могу не отметить инициативу SeleniumTestAB, который решил улучшить код и запилил PR 1004 и PR 1006.


Новости

И главное

И главное: 25 октября Селениду ИСПОЛНИЛОСЬ 8 ЛЕТ!!!

25.10.2011 был сделан первый коммит в репозиторий селенида. После 8 лет мы имеем:

  • 89 тыщ скачиваний с 14 тыщ уникальных айпишников (в месяц)
  • 1 тыща звёзд на гитхабе
  • 55 контрибьютеров

Спасибо всем контрибьютерам, пользователям, критикам, идеологам и просто сочувствующим.

Это только начало!


Статистика скачиваний Selenide за октябрь 2019:




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

ru.selenide.org

31.10.19