Вышла Selenide 4.11.2

Вышла Selenide 4.11.2

change event, изыди!
25.04.18

Друзья!

Мы выпустили версию Selenide 4.11.2. Не терпится узнать, какие обновления вас ждут?


Теперь можно делать скриншоты элементов внутри iframe

За примерами можно сходить в ScreenshotInIframeTest:

SelenideElement iframe = $("#iframe_page");
SelenideElement element = $("#small_div");
File file = Screenshots.takeScreenShot(iframe, element);

спасибо Andrejs Kalnačs за PR 705


Добавили метод atBottom()

Он позволяет проверить, что страница проскроллена до самого низа:

assertFalse(atBottom());
executeJavaScript("return window.scrollTo(0, document.body.scrollHeight);");
assertTrue(atBottom());

Примеры в PageAtBottomTest

спасибо pavelpp за PR 646


Добавили настройку setValueChangeEvent

Как известно, методы $.append() и $.setValue() после установки значения генерировали несколько событий, в том числе change. Недавно мы пришли к выводу, что это неправильно, потому что событие change должен триггерить браузер в зависимости от действий пользователя. К тому же иногда это вызывало и реальные проблемы - например, когда это искусственное событие change вызывало переход фокуса к следующему в DOM элементу, который был вне viewPort.

Но не волнуйтесь, по умолчанию поведение Selenide не поменялось. По дефолту setValueChangeEvent=true. Это на всякий случай - вдруг у всех всё сломается. :)

Если вы согласны с доводами, выключите генерацию события change через системное свойство:

-Dselenide.setValueChangeEvent=false

или прямо в тестах:

Configuration.setValueChangeEvent = false;

Ну а если не согласны - смело делитесь соображениями. Устроим дискуссию!

спасибо MikeShysh за PR 718


Обновили зависимости

  • htmlunit:2.30
  • webdrivermanager:2.2.1

Если у вас была кастомная имплементация SLF4J, и теперь логи заспамлены чем-то типа

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/arasolka/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.11.0/9ba207b78e470fe7765ebee14f1f0336c9cbcc18/log4j-slf4j-impl-2.11.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/arasolka/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

то стоит заигнорить транзитивную зависимость, прилетевшую из webdrivermanager. Например, в Gradle это делается так:

configurations.all {
    exclude group: "ch.qos.logback", module: "logback-classic"
}

Мы исправим это в следующей версии Selenide.

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

Мы давно не выкладывали статистику скачиваний Selenide. А она растёт! Год назад было 8000, теперь уже 18000 скачек в месяц.

Жизнь ништяк!


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

ru.selenide.org

25.04.18