Released Selenide 3.5

Released Selenide 3.5

rubber collections
31.03.16

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



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