Released Selenide 6.17.0

Released Selenide 6.17.0

Goodbye, WebDriverManager!
02.08.23

Good morning!

Don’t wait to upgrade to Selenide 6.17.0!

Upgraded to Selenium 4.11.0

We upgraded Selenium version from 4.10.0 to 4.11.0.

Read the full Selenium changelog here.

See PR 2393.


Replaced WebDriverManager by SeleniumManager

Starting from version 4.6.0, Selenium has built-in tool for downloading webdriver binaries - SeleniumManager. Afaik, it’s developed by the same Boni Garcia, who created WebDriverManager. But now it’s an official part of Selenium project.

Read more about SeleniumManager here.

And now Selenide uses SeleniumManager instead of WebDriverManager.

  • Yes, we had to remove setting Configuration.driverManagerEnabled and method DriverFactory.setupWebdriverBinary. It might cause compilation errors in your projects.
  • Yes, it’s slightly bad that we did it unexpectedly. Usually we don’t remove the API immediately, but first mark it as @Deprecated, and remove only in next major release.

But we had no choice.

Starting from version 5.4.0, WDM started requiring Java11+ and stopped working with Chrome 115. While SeleniumManager still works on Java 8 and supports Chrome 115. And works out of the box. What else was left for us?

See issue 2402 and PR 2400.


P.S. If you still want to use WebDriverManager - not a problem. Just add it explicitly as a dependency to your project and call in the beginning of your tests:

  WebDriverManager.chromedriver().setup();
  WebDriverManager.firefoxdriver().setup();
  WebDriverManager.edgedriver().setup();
  etc.


Restored support for Java 8

In the last release, Selenide occasionally started requiring Java 11. It happened because of WebDriverManager update mentioned before.

Now it’s gone: no WebDriverManager - no problems. :)

Oldschoolers, you can run your tests on Java 8 again.

Nevertheless, I recommend you to upgrade to Java 11
(or even better to Java 17).
In the following autumn, Selenium will upgrade to Java 11 anyway, and then you will definitely have no choice.

See issue 2385 and PR 2400.


Added method $.type() for slow typing

This feature has been requested for a very long time. And finally!

Method $.type() does almost the same as $.sendKeys(), but slowly. With delays between key presses. It emulates like a real user is typing a text. May be useful for testing autocompletion, automated suggestions, hints, validation etc.

import static com.codeborne.selenide.TypeOptions.*;

$("#query").type("Who the fuck is yevgeny prigozhin");
$("#query").type(text("Who the fuck is dmitry utkin"));
$("#query").type(text("Who the fuck is lvova-belova").withDelay(ofMillis(100)));

By default, the delay between key presses is 200 milliseconds.

Thanks to Amuthan Sakthivel for PR 2191.


For mobile apps: click with long press

Now you can use this gesture when testing mobile apps:

import static com.codeborne.selenide.appium.SelenideAppium.$;
import static com.codeborne.selenide.appium.AppiumClickOptions.*;

$.click(longPress()); // by default 3 seconds
$.click(longPressFor(Duration.ofSeconds(4)));

See issue 2370. Thanks to Amuthan Sakthivel for PR 2381.


For mobile apps: swipe left and right

Now you can use this gesture when testing mobile apps:

import static com.codeborne.selenide.appium.SelenideAppium.$;
import static com.codeborne.selenide.appium.AppiumSwipeOptions.*;

$.swipeTo(); // by default swipes to the right
$.swipe(right());
$.swipe(right(20));
$.swipe(left());
$.swipe(left(30));

Thanks to Amuthan Sakthivel for PR 2369.


So, update, try and share:

How do you like SeleniumManager?
Everything is broken, or we can live with it?


Statistics

Monthly downloads count of selenide.jar exceeded 649 thousands!

(The previous record was in March: 602 thousand)


Andrei Solntsev

selenide.org

02.08.23