Друзья!
Мы выпустили версию 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
Добавили настройку setValueChangeEvent
Как известно, методы $.append()
и $.setValue()
после установки значения генерировали несколько событий, в том числе change
.
Недавно мы пришли к выводу, что это неправильно, потому что событие change
должен триггерить браузер в зависимости от
действий пользователя. К тому же иногда это вызывало и реальные проблемы - например, когда это искусственное событие change
вызывало
переход фокуса к следующему в DOM элементу, который был вне viewPort.
Но не волнуйтесь, по умолчанию поведение Selenide не поменялось. По дефолту setValueChangeEvent=true
.
Это на всякий случай - вдруг у всех всё сломается. :)
Если вы согласны с доводами, выключите генерацию события change
через системное свойство:
-Dselenide.setValueChangeEvent=false
или прямо в тестах:
Configuration.setValueChangeEvent = false;
Ну а если не согласны - смело делитесь соображениями. Устроим дискуссию!
Обновили зависимости
- 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