Changes in Selenide 2.19

Changes in Selenide 2.19

Frames inside frames within frames
21.06.15

Hi everybody!

We have released Selenide 2.19.

Several problems have been fixed, primarily with inner frames and self-signed certificates.

Working with inner frames

One of the most problematic objects for automated testing is frames.

Selenium Webdriver can switch to frame. But there are also inner frames in the field! Webdriver cannot switch into inner frame. Poor testers need to switch to parent frame, then to child frame, then to grandchild frame, etc.

In Selenide 2.19 we added a convenient method for switching directly into inner frame. Just as simple:

  import static com.codeborne.selenide.Selenide.*;
  
  switchTo().innerFrame("parentFrame", "childFrame_2", "childFrame_2_1");

By the way, searching of frame also works faster than in Selenium because of optimized locators usage.

Thanks to @dimand58 for this pull request!

PhantomJS can now work with self-signed certificates

Another problematic aspect for automation are self-signed certificates.

This is when your administrators desire security. They run your web application for testing on https (like https://test.company.ru). But they do not have enough money to use real trusted SSL certificated. And they use self-signed (aka untrusted) certificates on test-servers (that are typically available only in intranet).

As a result, we do not get any better security, but get infinite problems like “browser shows warnings”, “my script cannot download files”, “script cannot open application in IE” etc.

Webdriver providers try to make our life even more complex. There is standard webdriver setting "acceptSslCerts", which is understood by Chrome, FireFox and even htmlunit. But not PhantomJS. PhantomJS doesn’t understand this setting, it wants you to configure its own specific setting! And finally, IE doesn’t understand any settings.

We have done it. We configured the right settings, and now PhantomJS+Selenide can open your “https://test.company.ru”.

But IE still doesn’t work with self-signed https. Feel free to share your knowledge if you know how to cure it.

Method $.download() now supports self-signed certs

In case you didn’t know, Selenide has a very convenient method for file downloading:

File cv = $("#cv").download();

Now it also works when you try to download file from your mega-secure untrusted “https://test.company.ru”.

Method $.setValue() also triggers “focus” event

Before this, method $.setValue() (in fastSetValue=true mode) triggered events “keydown”, “keypress”, “input”, “keyup”, “change”. Now it also triggers “focus”. I am not actually sure that it’s really needed, added just in case.

Fixed bug with screenshots in Selenide 2.18

Selenide 2.18 introduced one bug: it took too many of screenshots. Even if tests didn’t failed. It didn’t cause test failure, but took more disk space. Now it’s fixed.

Upgraded to Selenium Webdriver 2.46.0

Changelog of 2.46.0 is quite impressive.

  • Added beta-version of Marionette webdriver (Firefox webdriver reincarnation?)
  • In some cases, selenium server should start 10x times faster
  • Native events not supported anymore in Firefox 33+
  • Presto-based Opera not supported anymore
  • Etc.


And what’s up with you?


21.06.15