Serenity-core: Update for version of selenium - 3.3.1

Created on 24 Mar 2017  路  9Comments  路  Source: serenity-bdd/serenity-core

I've been researching this for the company I work for and - with our browser versions being 'fixed' for us we are utilizing the latest chrome and firefox browsers. We have issues running the FirefoxDriver and ChromeDriver as the latest binaries seem to incompatible.

In addition, the latest selenium version is Java 8+.

The latest version of Selenium is 3.3.1, I'd like to see if we can get serenity to consume it. I would also like to do some work on this, since this would involve a fairly major shift to move away from Java 7 I'm interested to see what the appetite is to merge a change like this back into master

enhancement

Most helpful comment

Regarding running latest selenium with serenity-core - has anyone had success with this? I've seen a few API incompatibilities (Function<> imported from a different package in the Fluent stuff) and there was one more I can't recall at this time. We've tried this approach but did not have success.

All 9 comments

Hi Matthew,

Thanks for your proposal to help out with Serenity! I would welcome your help - I am keen to get onto this, just haven't had time to prioritise it as of yet. Moving to Java 8 may be an issue for some users who are still using Java 7, but I think it is time that Serenity supports Selenium 3 properly.

Please email me directly (my contact details on http://johnfergusonsmart.com/) and we can coordinate and discuss details.

Hi,
did you guys agree on anything? We are currently evaluating Serenity and this would help.

It is on the near-term roadmap but it is a major breaking change (in particular, you need Java 8), which is penalising for many users, so the update needs to be handled carefully.

(As an aside, you can just run Serenity with the latest selenium dependencies, and many users do, but last time I tested the Gecko driver still wasn't feature complete so the Serenity smoke tests were failing)

Thanks!

@wakaleo - Geckodriver might be a few releases away from stable, but it should be possible to create FirefoxDriver with
capabilities.setCapability("marionette", false);

I'm assuming this could be added just before FirefoxDriverProvider:68, which would allow Selenium 3 users to use old Firefox by default, and enable marionette if they prefer?
https://github.com/serenity-bdd/serenity-core/pull/768

Regarding running latest selenium with serenity-core - has anyone had success with this? I've seen a few API incompatibilities (Function<> imported from a different package in the Fluent stuff) and there was one more I can't recall at this time. We've tried this approach but did not have success.

@mreines : You will be able to use up to selenium 3.0.1 with Serenity. After that selenium changed updated timeouts which causes problems with Serenity. From Selenium changelog for 3.1.0..

  • Updated specification compliance for windows and timeouts APIs. The
    language bindings now properly implement the local end of the W3C
    WebDriver specification for getting and setting window size and position,
    and for getting and setting timeouts. It also marks as obsolete the
    methods for the ITimeouts interface in favor of properties, since the
    specification supports getting as well as setting timeouts.

Selenium 3.4 is supported in Serenity version 1.5.x

Was this page helpful?
0 / 5 - 0 ratings