Released Selenide 5.24.0

Judgement day


Released Selenide 5.24.0

Judgement day

On August 29, 1997 a computer system Skynet became self-aware and launched nuclear missiles at Russia. So the war between humans and terminators began.

It happened .. oh, my god! - 24 years ago. We live in the Future, and we are still alive. And we still rule the machines.

I I celebrate this day every year, and today, in honor of the holiday, we released Selenide 5.24.0.

We added method $.execute(Command, Duration)

to run custom commands with a custom timeout.

In Selenide 5.3.0 we added method $.execute() for running custom commands. But it could only use a default timeout. Now you can use custom timeout for any custom command.

See issue 1525.
Thanks to Evgenii Plugatar for PR 1531.

Methods $.execute(Command) and $.execute(Command, Duration) don’t pass arguments to the command

It’s a small change, but it might break your custom commands if you have some. Be prepared.

See issue 1527.
Thanks to Evgenii Plugatar for PR 1535.

We fixed Or and And conditions in case if element is not found

See issue 1534.
Thanks to Evgenii Plugatar for PR 1539.

Now Or and And don’t accept empty conditions list

I hope you never tried to use Or and And with an empty conditions list because it makes no sense. Anyway, now you will get a runtime exception if you try to.
Thanks to Evgenii Plugatar for PR 1542.

We renamed methods Condition.applyNull() and CollectionCondition.applyNull()

Many years ago I named it applyNull, but this name is very misleading.
This method checks if the condition is met if the element is not found at all. Now it’s named missingElementSatisfiesCondition() - a rather long, but accurate.

See issue 1541.
Thanks to Evgenii Plugatar for PR 1544.

We removed useless stacktraces when closing the webdriver

As you know, Selenide automatically closes the webdriver when it’s not needed anymore. To make it possible, Selenide runs a few background threads which monitor the webdriver status. And sometimes these threads compete with each other and try to close the webdriver which has been already closed by another thread. You might see such stacktraces in your logs.

Now Selenide detects such situation better and doesn’t print long useless stacktraces.

See issue 1467 and PR 1540

We fixed searching shadow roots inside of web elements

See issue 1532 and PR 1536

selenide-selenoid 1.1.5

We released selenide-selenoid:1.1.5 with upgrade to Selenide 5.24.0

selenide-appium 1.6.8

We released selenide-appium:1.6.8 with upgrade to Selenide 5.24.0

UPD: Selenide 5.24.1

WebDriverManager is a library (used by Selenide) for downloading webdriver binaries. They recently released a major update 5.0.0 with lots of new features. We haven’t incorporated these new features in Selenide yet, but at least we released Selenide 5.24.1 with upgrade to WebDriverManager 5.0.1.

Thanks to Anil Kumar Reddy Gaddam for PR 1531.

UPD: Selenide 5.24.2

We found that commons-lang3 dependency (used by Selenide) doesn’t come transitively from WDM 5.x anymore. We had to add it explicitly and release Selenide 5.24.2.

See issue 1551.

UPD: Selenide 5.24.3

We upgraded to WebDriverManager 5.0.2, now we could exclude docker-java and few other dependencies.

UPD: Selenide 5.24.4

We upgraded to WebDriverManager 5.0.3 which had a quickfix for the latest Firefox 92.0 on MacOS.


The World doesn’t consist of only Web and Mobile!
You can also use Selenide for testing Swing applications! Here is an example.
Under the hood it uses webdriver implementation for swing.

Selenide usage statistics

249+ thousands of downloads per month. We almost got 250K!

Hasta la vista, baby!

Andrei Solntsev

The project is maintained by