Вышла Selenide 4.5

Вышла Selenide 4.5

Про-из-во-дительн-ость!
26.06.17

Привет, друзья!

Мы выпустили новую версию Selenide 4.5! В основном этот релиз посвящён улучшению производительности самого селенида.


Ускорили метод $.setValue()

В Selenide была крутая фича, про которую, как оказалось, никто не знал: метод $.setValue() был настолько умным, что умел проставлять значение не только для простых текстовых полей, но и для выпадающих списков и радио-кнопок. Идея была в том, что тест должен оставаться стабильным, когда разработчики поменяют тип элемента, скажем, с <select> на <input type="radio">.

Но эта “умность” была не бесплатной: во время каждого вызова $.setValue() Selenide пытался определить тип элемента, а это несколько вызовов вебдрайвера. То есть несколько десятков (если не сотен) миллисекунд.

Поскольку всё равно никто об этом не знал и не использовал, мы решили отказаться от этой фичи в угоду скорости. Теперь мы сделали это “умное” поведение выключенным по умолчанию. Если кому очень надо, можно его включить следующей настройкой:

-Dselenide.versatileSetValue=true

Хотя есть способ проще:

  • либо включите -Dselenide.fastSetValue=true,
  • либо используйте методы $.selectOption() и $.selectRadio().

Спасибо Alexander Popov за исправление!


Ускорили методы работы с коллекциями

Как оказалось, Селенид пытался быть слишком умным и при работе с коллекциями веб-элементов. Например, следующая проверка:

$$("tr").shouldHave(size(7));

ждала ещё сколько-то миллисекунд (по умолчанию 600 мс), даже если элементов сразу было 7. Потому, что “а вдруг сейчас ещё несколько подгрузится, и будет уже не 7”.

И от этой фичи мы решили отказаться в угоду производительности.

См. pull request 549


Добавили методы $().$x() и $().$$x()

… для поиска по XPath внутри веб-элемента

Теперь можно писать так:

  $("table").$x(".//tr").shouldBe(visible);
  $("table").$$x(".//tr").shouldHave(size(5));

Не знаю, зачем, но людям вот нравится…

Спасибо Oleksii Cherevatyi!


Исправили поддержку Opera driver

Не знаю, зачем кому-то понадобился Opera driver, но кому-то понадобился…

Спасибо Roman Marinsky!


Подчистили лишние логи

А именно, удалили это лишнее сообщение при закрытии вебдрайвера:

INFO: Close proxy server: 24 -> null

Спасибо Andrew Zakordonets!


Обновились до org.littleshoot:littleproxy:1.1.2

Это касается только тех, кто использует опцию Configuration.fileDownload=PROXY


Обновились до phantomjsdriver 1.4.3

Я вообще не представляю, кого это касается, но имейте в виду. :)


Добавили много юнит-тестов для самого Selenide

Это мой личный праздник. Andrew Zakordonets решил помочь проекту - взял да и дописал кучу недостающих юнит-тестов для самого Селенида. Вот прямо круто!


Новости


Мы стартанули проект selenide-appium

Мы создали отдельный проект для лучшей поддержки Selenide в Appium framework: github.com/selenide/selenide-appium

Проект пока в зачаточном состоянии, но вполне рабочий. Есть как минимум один реальный проект, где эта библиотека уже используется.


Мы добавили несколько новых проектов в Selenide examples

Как вы знаете, на гитхабе есть серия мини-проектов - примеров использования Selenide с разными инструментами. Недавно мы добавили туда парочку новых примеров:

Мы работаем над новыми примерами. В ближайших - Spring Boot, Allure 2 и бог знает что ещё. Присылайте свои примеры!


А ты помог Selenide?

Дорогой друг! И ты тоже можешь помочь проекту Selenide. Для этого даже не надо быть семи пядей во лбу или иметь 20 лет опыта в разработке.

Вот что ты можешь сделать:

  • Просмотреть открытые пуллреквесты и дать свою оценку в комментариях, можно ли мержить эти изменения в Selenide
  • Просмотреть открытые тикеты и дать свою оценку в комментариях:
    • не фигню ли просят
    • не сделано ли это уже
    • стоит ли это делать
  • Дописать недостающую документацию
  • Написать блог-пост
  • Дописать недостающие тесты
  • Добавить свои примеры использования Selenide с другими инструментами на github.com/selenide-examples.
  • Найти добровольца-дизайнера для редизайна сайта (в первую очередь под мобильники)

Любая помощь приветствуется. Как говорится, нас - рать!

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

ru.selenide.org

26.06.17