Вышла Selenide 3.5

Вышла Selenide 3.5

резиновые коллекции
31.03.16

Привет!

Вышла в свет Selenide 3.5 с поддержкой резиновых коллекций. А именно,

Добавили гибкие условия для проверки размера коллекций

Раньше в Selenide можно было только проверять точный размер коллекции:

  $$(".man.angry").shouldHave(size(12));

Теперь же - на радость шурупозабивателям - можно проверять и более гибко: больше, меньше и т.п. А именно:

  $$(".man.angry").shouldHave(sizeLessThan(13));
  $$(".man.angry").shouldHave(sizeLessThanOrEqual(12));
  $$(".man.angry").shouldHave(sizeGreaterThan(11));
  $$(".man.angry").shouldHave(sizeGreaterThanOrEqual(12));
  $$(".man.angry").shouldHave(sizeNotEqual(42));

Спасибо vasilevichra за этот pull request!

P.S. Вообще-то мне до сих пор это кажется сомнительной идеей. Я думаю, что тест должен подготавливать требуемые пред-условия перед запуском тестируемого кода. То есть тест всегда должен точно знать, сколько и каких объектов должно быть на экране. Но народ просил - мы сделали.

Ускорение загрузки страниц

По умолчанию Selenium webdriver ждёт, пока все элементы страницы (html, script, style, img) загрузятся. Это может быть долго, если например, на странице есть большие картинки. И это наверняка не нужно, особенно в случае с Selenide, который по любому умеет ждать наступления ожидаемых условий.

Поэтому в Selenide 3.5 мы включили стратегию загрузки none. Это должно сделать ваши тесты быстрее.

Если нужно, стратегию можно поменять через настройку:

-Dselenide.page-load-strategy=normal

или прямо в коде:

Configuration.pageLoadStrategy=eager;

Описание всех доступных стратегий есть здесь.

Исправили метод toString()

Selenide умеет выводить подробную информацию о веб-элементах. То есть когда вы пишите System.out.println($("option#abc")), вы увидите в консоли текст и значения всех атрибутов этого веб-элемента:

<option id="abc" value="livemail.ru" selected:true>@livemail.ru</option>

Это здоровская возможность, и кстати, селениум этого не умеет.

Поэтому нам пришлось использовать грязные JavaScript-трюки. Я потом месяц отмывался!

Но оказалось, что этот метод печатает изначальное значение атрибута value, даже если он был позже изменён динамически. Эту проблему мы исправили в Selenide 3.5. Теперь метод toString() всегда печатает свежее значение value.

Обновились до selenium-java 2.53.0

Список изменений в selenium 2.53.0.



Новости

Немного статистики

Статистика скачиваний Selenide за февраль 2016:

И количество уникальных IP:

Нас всё больше!



Следующий релиз Selenide мы планируем выпустить довольно скоро. И в него мы хотим включить прокси-сервер BrowserMobProxy, чтобы Selenide мог скачивать файлы и делать разную другую магию.

А что у вас новенького?


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

ru.selenide.org

31.03.16