Latest Version of Selenium has Been Unveiled With a lot of New Features and Integrations

DZone 's Guide to

Latest Version of Selenium has Been Unveiled With a lot of New Features and Integrations

In this article, we take a look at the improvements that have been made to the Selenium automation testing software over its last several iterations.

· Web Dev Zone ·
Free Resource

It is quite shocking to hear that Selenium is 11 years old. Jason Huggins developed Selenium back in 2004 at ThoughtWorks. In the earlier stages, it was utilized as a tool in a few projects which were developed internally. A lot has changed since then but not just in Selenium alone. “Automation of Tools in a Browser” is a set of tools which was very difficult and fragile. Selenium simplified the creation of this tool set. These changes and advancements in Selenium led to the generation of a community of open source and commercial tools. Selenium is now the de facto browser tool for testing. It is very hard to believe the fan base and momentum Selenium has acquired over these 10 years and this seems unstoppable due to more exciting features and integrations emerging day-by-day.

Since the Selenium version 2.53.1, there hasn't been a stable release until the release of Selenium 3.0.0 beta 1 version in October 2016. There was no proper explanation given for so much delay. It may have been due to the shortage of resources to finish the release by that time frame or an important modification in the direction which makes sense as the plan is to eliminate the Selenium core fully in the next release. Possibly, they wanted to give more time to the developers to migrate to utilizing the WebDriver API in favor of the Selenium Core Libraries.

From there, Selenium released the versions 3.0.0 beta 2, 3.0.0 beta 3, 3.0.0 beta 4, 3.0.0, 3.0.1, 3.1.0, 3.2.0, 3.3.0 and the latest version 3.3.1. The latest version of Selenium is Selenium 3.3.1, and was released on March 10, 2017. So, it is time for the users to update to the latest versions of Selenium.

Features in the Latest Versions of Selenium

V3.0.0 – Beta 1

Important Changes

1.The minimum available version of Java is 8+ now.

2.The original RC APIs are available only through the leg-rc package.

3.Make sure that leg-rc package is present on the classpath to run the exported IDE tests.

4.Mozilla’s Geckodriver provides the support for Firefox. Geckodriver will run alongside the browser. It can be downloaded from GitHub.

What Is GeckoDriver?

A proxy for utilizing W3CWebDriver-compatible clients to communicate with browsers based on Geckodriver. Geckodriver delivers HTTP APIs reported by the WebDriver protocol to interact with Gecko browsers like Firefox (versions beyond 47). By default, the next generation Firefox driver known as Marionette is turned on from Selenium 3. Even if you are using previous Firefox browser versions, you are expected by Selenium to lay the pathway to the driver executable by the webdriver.gecko.driver.

Click here to know more about Marionette.

For running the tests on the remote machines, the WebDriver has to utilize the instance of the Desired Capabilities and the RemoteWebDriver to specify the name of the browser, platform, and version in order to execute the tests.

Usually, for running the tests on our local machine, we need to utilize RemoteWebDriver.

5. The support for Safari is provided on the Mac OS (Sierra or later) by means of the SafariDriver owned by Apple.

6. MS provides the support for Edge.

7. The Official support for IE needs version 9 or above. The previous versions may work but are supported no longer because the MS has end-of-lifted them.

Other Significant Changes:

1.WebDriver backs the new HTML-table runner.

2.The command line arguments that are unused are no longer parsed now.

V3.0.0 Beta 2

Important Changes

1.The maven packaging fixes.

2.Updated the GeckoDriver --port argument in all the bindings.

3.The grid fixed NPE's on registration when -browser not specified.

V3.0.0 Beta 3

Important Changes

1.The leg - rc jar needs to be separately downloaded and not packed into the major Selenium jar.

2.The Removed command names that end with "*w3c" and handle this instead with distinct codecs.

3.Switched to utilizing atoms for 'isDisplayed' and 'getAttribute' when interacting with a W3C remote end.

V3.0.0 Beta 4

Important Changes

1.Firefox is supported completely only at version 47.0.1 or earlier. The Support for firefox's later versions is provided by the geckodriver, which depends on the W3C WebDriver spec that is evolving and utilizes the wire protocol in that spec, which is liable to change without notice.

2.You may wish to pick an ESR release like 45.4.0esr or earlier.

3.Firefox 47.0.0 is not supported at all.

Other Significant Changes:

1.In proclivity for the SafariDriver owned by Apple, removes the OSS SafariDriver which ships as a portion of Safari 10.

2.Incorporates the version of Selenium in exceptions (again).

3.[HTML suite runner] Has a much better flag affinity with the 2.x Selenium-server-standalone.

4.Fix #2727, combines -jettyThreads and -jettyMaxThreads (#2735).

5.[atoms] Removed the getAttribute dependencies, decreasing the size from 36K to a size of 7K.

6.Much better aid for the wire codec of the W3C WebDriver.

7.Added capability to utilize FirefoxOptions when starting Firefox.

8.The Technology Preview of the SafariDriver can be utilized if installed.


Important Changes

1.The Firefox is supported completely only at version 47.0.1 or earlier. The Support for Firefox's later versions is provided by the geckodriver, that depends on the evolving W3C WebDriver spec, and utilizes the wire protocol in that spec, which is liable to change without notice.

2.You may wish to select an ESR release like 45.4.0esr or earlier.

3.Firefox 47.0.0 is not at all supported.

Other Significant Changes:

1.Stability fixes in the Grid.

2.All the Grid nodes can now provide help.

3.Updated to the latest version of HtmlUnitDriver.

4.Re-enabled log gathering for a standalone server.

5.The Firefox profile was passed to both the geckodriver and the legacy FirefoxDriver.


1.Incorporates the ElementScrollBehavior enum in the release.

2.Append the dependency on the HTML Unit to be incorporated in the standalone server.

3.The original request is passed by the Grid new session requests through to the node without even a single change.

4.In the HTMLrunner, fix the NPE, when a port is not designated.


1.Updated how WebDriverException collects the system info. Fixed an issue with slow-downs on the OS X Sierra.

2.Updated FluentWait and Wait for Java 8. Needs an update to the latest version of guava 21.0

3.Eliminated the old marionette actions support.

4.The Selenium server now interprets a "-version" flag.

5.To state the Firefox binary in the GeckoDriverService builder, a more simple way is applied.

6.Firefox can now choose a channel to start from on the Windows by means of `FirefoxBinary.Channel`

7.ChromeDriver now aids the `NetworkConnection` interface.

8.Fixed to make the HTMLrunner work.

9.Eliminated native events from the FirefoxDriver.

10.Shortened the string representation of abilities for the display purposes.

11.Implemented the session storage for the w3c codec.

12.Modified the server dependency to HTMLunit 2.23.2.

13.[Grid] DefaultCapabilityMatcher now contemplates the "browserVersion."

14.[Grid] Fixed the issue regarding node registration for the nodes of Se2.x along with -servlets.


1.Updated Guava to version 21 and started using the Java 8 features. The Users are recommended to update too.

2.Fixed an issue regarding starting the Firefox caused by the missing libraries.

3.Experimental aid for W3C Action endpoints.

4.Eliminated the deplored `FluentWait.until(Predicate<?>)` method. It must make the lambdas function correctly with the Wait instances now.

5.Bumped the HtmlUnitDriver version to 2.24.

6.[Grid] Enabled the customization of TestSlot (#3431).


1.Integrated support for the geckodriver v0.15.0.

2.Deployed rarely utilized FirefoxDriver constructors.

3.Streamed the New Session abilities to disk before use in order to circumvent eating every byte of the memory that is available.

4.Beginnings of the local-end implementation of the capabilities of the w3c New Session. There is still some work left to do.


1.Better aid for the geckodriver v0.15.0. Especially, the exceptions that are returned from the remote end are properly unwrapped now.

2.Fixed a bug with a status page of the standalone server.

3.Deployed `Capabilities.isJavascriptEnabled`

As the utilization of the web applications is increasing rapidly, Selenium is skyrocketing in the automation tools industry. So, we can see more suppliers of vendor tools supporting Selenium's technology for automating the testing of web applications. Taking into account, the trends and statistics, we can see a much brighter future for Selenium in the coming years.

Today, Selenium is one of the most preferred and finest automation testing tools for websites. Due to its APIs that are easy to use, the Selenium testing suite is emerging as the topmost choice for the automation testers to test the GUI and functionality of the web-based applications. With the Selenium tool, the unit testing for the JavaScript can also be done. If you are engaged in either software testing or automation testing, then Selenium will benefit you for sure to automate your test for the web based applications. The Selenium testing suite will assist you in executing automation tests effectively with reduced time and cost of your website project. The job prospects for Selenium are outstanding and the people who obtain training in Selenium are highly preferred in the Automation Tools market. The major IT companies are preferring Selenium more and more when it comes to automation testing owing to its extensive features.

automation testing, selenium, web dev

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}