Hi all!
We released Selenide 3.5 with flexible collection size checks.
We added flexible checks for collection size
Before now, we could only check the exact size of collection:
$$(".man.angry").shouldHave(size(12));
Now we can use flexible checks: <, <=, >, >=, <>
Simple like this:
$$(".man.angry").shouldHave(sizeLessThan(13));
$$(".man.angry").shouldHave(sizeLessThanOrEqual(12));
$$(".man.angry").shouldHave(sizeGreaterThan(11));
$$(".man.angry").shouldHave(sizeGreaterThanOrEqual(12));
$$(".man.angry").shouldHave(sizeNotEqual(42));
Thanks to vasilevichra for this pull request!
P.S. Actually I am still not sure that this is a good idea. I think that test must prepare required preconditions before running application. It means that test must always know exactly how many elements should be on the page at every moment. But we implemented it because users kindly asked for it.
Speed up of page loading
By default Selenium webdriver waits until all elements of a page (html, script, style, img) are completely loaded. It may be slow, for example, if there are big images on the page. And it’s not really needed, especially in case of Selenide that can wait for any expected conditions.
That’s why we used page loading strategy none
in Selenide 3.5. It should make your tests faster.
Of course, you still can use any other strategy if you need.
Either by system property:
-Dselenide.page-load-strategy=normal
Or directly in code:
Configuration.pageLoadStrategy=eager;
You can find all available strategies here.
Fixed method toString()
Selenide can print detailed information of web elements.
When you write System.out.println($("option#abc"))
, you will see a text and all attributes of this element:
<option id="abc" value="livemail.ru" selected:true>@livemail.ru</option>
It’s really cool feature, and by the way, Selenium cannot do it.
That’s why we had to use dirty JavaScript hacks to print all the attributes.
But we found that this method prints only the initial value of attribute value
, even if it has been modified dynamically.
We fixed this problem in Selenide 3.5. Now method toString()
always prints out the actual value of value
.
Upgraded to selenium-java 2.53.0
Here is selenium 2.53.0 changelog.
News
- The historical moment: Selenide has been mentioned in Wikipedia
- Yakiv Kramarenko presentation on SeleniumCamp 2016 conference: Selenide Alternative in Practice
- Selenide receipts: Appium + Selenide
- Post about automation system of the printing company Ardecs Print Activity: Selenide simply offers not to bother
- Article about Selenide in Software testing magazine
- Article about Selenide from Fabricio Galdino: API Selenide: Developing Functional Tests in Java
Statistics
The following is statistics of Selenide downloads in February 2016:

And number of unique IP:

The army of Seleniders is growing!
We plan next Selenide release pretty soon. We are going to include proxy server BrowserMobProxy in it, so that Selenide could download files and use other powerful magic.
And what’s up with you?
Andrei Solntsev
selenide.org
31.03.16