This article provides information about the basic functionality and differences between different versions of Selenium.
1.x – Selenium RC (2004)
2. High-level framework-oriented.
3. More procedural than object oriented.
2.x – WebDriver (July 2012)
1. Interacts with browser via separate drivers using JSON Wire Protocol.
2. Lower level library-oriented.
3. More object oriented (http://www.seleniumhq.org/docs/appendix_migrating_from_rc_to_webdriver.jsp)
4. Continued support of Selenium RC.
3.x – No More RC! (October 2016)
1. The old Selenium 1.x code was removed and decoupled from all products (grid, standalone server, etc).
2. No API changes, everything that worked in 2.x will pass in 3.x.
3. New default Safari driver. By coincidence Apple released a new driver at the same time as the Selenium 3.0 release. The legacy Safari Driver hadn’t been updated or maintained in several years, and was officially deprecated. The Apple implementation is the only one supported in 3.x
4. New default Firefox driver. By coincidence Mozilla released a new driver at the same time as the Selenium 3.0 release. Mozilla changed their security protocols, preventing the Selenium project from using the driver it had written in Firefox 48+, which requires using geckodriver. Which driver you need to use is based on Firefox version, not Selenium version. The only difference for Selenium is which driver is default.
* Selenium 2.x & Firefox <= 47 → no extra parameter needed
* Selenium 2.x & Firefox >= 48 → pass in
“marionette => true” parameter
* Selenium 3.x & Firefox <= 47 → pass in
“marionette => false” parameter
* Selenium 3.x & Firefox >= 48 → no extra parameter needed
4.x – W3C Specification Compliant
2. Functionality between browsers will be much more similar, since each browser will need to implement the same specification.
3. End-userAPI is unlikely to change much (though there will be some new behaviors, and behaviors that might change due to different implementations).
4. Only browser vendors whose drivers implement the W3C protocol will be supported (but all of them have participated in the W3C working group and have plans to update their drivers).
5. W3C standard is not yet finalized, but should be by early next year.