We’ve discussed the evolution of Selenium, and the major shift from Selenium 1 to Selenium 2 in “Intro to Selenium Testing”. We also noted that latest version of developers’ preferred open source automation testing tool is actually Selenium 3.
But what are the differences present between the two versions, and how did it affect development and testing? In this post, we’ll examine the features that are components of Selenium 3.
Announcing Selenium 3.0 Beta
When Simon Stewart, the founding contributor of WebDriver, announced a new beta version of Selenium would soon be released at SeleniumConf in 2013, it caused quite a stir among the already large community of open source contributors.
After advising users to switch from the original RC APIs to WebDriver, Selenium 3 would stop supporting RC completely to be replaced by a similar, revised function that was integrated with WebDriver.
Of course, since most people had already abandoned RC at this point, this change didn’t affect too many developers. Those who still were using RC, however, would have to prepare the transition to WebDriver.
The update also required Java 8 to be running to access certain elements and stopped supporting IE prior to version 9.
In a second release note, Stewart specified with the following details:
- WebDriver users will just find bug fixes and a drop-in replacement for 2.x.
- Selenium Grid users will also find bug fixes and a simple update.
- The WebDriver APIs are now the only APIs actively supported by the Selenium project.
- The Selenium RC APIs have been moved to a “legacy” package.
- The original code powering Selenium RC has been replaced with something backed by
- WebDriver, which is also contained in the “legacy” package.
- By a quirk of timing, Mozilla have made changes to Firefox that mean that from Firefox 48 you must use their geckodriver to use that browser, regardless of whether you’re using Selenium 2 or 3.
However, developers continued to wait three years for the release of Selenium 3, which was supposed to come out at Christmas 2013.
The Official Release of Selenium 3.0
Finally, in October of 2016, Selenium 3 was released.
Before, Selenium was responsible for driving each browser. With the update, all major browser vendors would ship their own implementations. While the specification was still in the works, it meant that Selenium was moving more toward becoming a testing framework that would operate as the default browser.
“Because the browser vendors know their browsers better than anyone, their WebDriver implementations can be tightly coupled to the browser, leading to a better testing experience for you,” said Stewart in the final release note.
Selenium 3.0 would also be integrating a W3C WebDriver specification for automation. In a follow-up interview, testing specialist Juho Perälä noted that this was a relevant tool in mobile testing through Appium and iOS Driver and it would “encourage compatibility across different software implementations of the WebDriver API.”
The purpose of the update wasn’t going to make any huge changes to the common use of Selenium. Instead, it was largely to make Selenium Core obsolete in exchange for an alternative implementation old RC interfaces to meet a rapidly advancing environment of web testing.
Looking Forward with Selenium
Selenium 3 continues to be exceedingly favored in test automation today, and SeleniumConf returns for 2017 as developers and enthusiasts maintain conversation around best practices in testing and advancing the future of Selenium. And we can only hope that when Selenium 4 is announced, it doesn’t take as long to launch.