Released Selenide 7.2.0

Released Selenide 7.2.0

Far from here now
27.02.24

Damn February.

To lift your spirits a bit, try to upgrade to Selenide 7.2.0:


Download files from Selenium Grid

Finally!
Now you can download using FOLDER method from Selenium Grid.
Until now, FOLDER only worked for local browsers and Selenoid.

If you run tests in Selenium Grid and need to download files with FOLDER method, you just need to replace dependency

  com.codeborne:selenide:7.1.0

by

  com.codeborne:selenide-grid:7.2.0

And that’s basically it.

Configuration.remote = "https://qa.grid.my.com:4444/wd/hub";
Configuration.fileDownload = FOLDER;
File quotes = $("#quotes").download(withExtension("txt"));
assertThat(quotes.content()).contains(
  "Love is stronger than fear",
  "It's a shame to do nothing, it's a shame to allow yourself to be intimidated.");

See issue 1687, PR 2659 and PR 2660.


Download files remotely using CDP

In the previous release, we added method CDP for downloading files. But it worked only for local browsers.

Now it also works with remote browsers running on Selenoid or Selenium Grid.

Configuration.remote = "https://cloud.browsers.my.com:4444/wd/hub";
Configuration.fileDownload = CDP;
File places = $("#places").download(withExtension("csv"));
assertThat(places.content()).contains("Church of the Icon of the Mother of God", "Borisovskoye");

See issue 1687, issue 2550 and PR 2661.


Collections for mobile tests

We have piled up useful things for testing mobile applications. There are new methods for collections:

  • SelenideAppium.$$(By)
  • SelenideAppium.$$(Collection<WebElement>)

Both return an instance of SelenideAppiumCollection. This is basically the same as the old good ElementsCollection, but with SelenideAppiumElement instances instead of SelenideElement.

SelenideAppiumCollection poetry = $$(By.xpath("//android.widget.EditText")).shouldHave(size(2));
poetry.get(0).scroll(up()).setValue("and blood clots will fall into the sky");
poetry.get(1).scroll(down()).setValue("of crimson Kremlin towers");

Also, we added method SelenideAppium.$(WebElement webElement), but it’s unlikely to be useful to you.

See issue 2333 and PR 2656.


Disabled chrome warning about stolen password

After updating Chrome, this annoying dialog “The password… was found in a data breach” started popping up. It seems logical that nobody needs this popup in the tests.

Although this looks more like a Chrome 122 bug, we quickly disabled this popup - just in case.

See issue 2658 and PR 2662.


Error message for element without href

I suddenly realized why so many people struggle with setting up a proxy, and don’t even realize that Selenide has easier methods for downloading files: FOLDER and CDP.

Well, the problem might be in communication. All these years, method $.download() threw the following error message:

The element does not have href attribute: <a id="generate-report">

Seeing this message, people opened the first post from Google - which is 5 years old and mentioned only one alternative - PROXY. And they rushed to study the proxy.

Now the error message will indicate that there are multiple downloading methods:

The element does not have "href" attribute: <a id="generate-report">, so method HTTPGET cannot download the file.
Please try another download method: FOLDER, CDP or PROXY.
Read more about possible download methods: https://selenide.org/javadoc/current/com/codeborne/selenide/FileDownloadMode.html

However, I’m afraid this won’t help, because who reads them…

See PR 2653.


Updated Selenium from 4.17.0 to 4.18.1

See Selenium changelog and PR 2655.


Let’s hope for spring.


You’re not allowed to give up.
Don’t be discouraged and don’t give up.
Test automation is not a sprint, but a long and hard marathon.


Andrei Solntsev

selenide.org

27.02.24