Selenium has gone through several major releases over the past 15 years, starting with Selenium 1.x in 2004 which introduced the Selenium Core. Selenium 2.x was released in 2010 and introduced WebDriver. Selenium 3.x was released in 2016 and moved away from the RC version. The next major release, Selenium 4.x, will focus on full spec compliance.
Do Good Mornings…
Introduce yourself.
Core Contributor to the Selenium project
Own .NET language bindings and IE driver
Want to take just a few minutes this morning to chat with you about the Selenium open source project, and what the future holds.
Before we talk about where we’re going, it’s probably a good idea to talk about where we’ve been
Selenium has a rich history.
Billions and Billions of years ago…
Wait. Had a Carl Sagan moment there. Maybe that’s a little too wide-angle.
Created by Jason Huggins at ThoughtWorks in 2004
Internal tool that was open-sourced
Originally an HTML-table-based system (for which Hugs has since apologized)
Evolved to Selenium RC, came to include Selenium IDE and Grid
Became *the* open source alternative to commercial web automation tools.
This was the Selenium 1 release.
How it worked: loaded your page in a frameset, and used JavaScript to drive the page within the frame.
Limitation: JavaScript sandbox, lack of fidelity in event simulation
Created by Simon Stewart when he was at ThoughtWorks in 2008.
Merged with the Selenium project in 2009
Released 2.0 in 2010
No longer limited to JavaScript sandbox
Automated browser more like a real user, and had a more object-based API
Innovation: JSON-over-HTTP wire protocol, started with Firefox driver, adopted by other drivers
Early days marked by a rapid-release model
During his “State of the Project” address at Selenium Conference in Boston (June 2013), Simon announces Selenium 3.0 “by Christmas.” Note that he didn’t say which year.
Mozilla introduces GeckoDriver as the primary method for automating Firefox
Selenium 3.0 makes that the default
Talk about the pain of that transition
Which leads us to where we are today
We have a spec
It’s at Candidate Recommendation, one step in the W3C spec process away from Recommendation, which means it’s finalized and implementations exist
Geckodriver, IE driver implement the spec (next public version will)
Transition is tough because there are bugs in protocol translation
Talk about 3.4 and how remote is broken (new session command payload)
If you don’t know him, this is Simon Stewart.
He’s still one of the main architects of the project, and it’s leader
Talk about Selenium IRC channel bot “whobrokeit”
One of the reasons that we’re having some challenges is that he just got married. Like two weeks ago.
So he’s on his honeymoon and a little preoccupied for a bit from Selenium work
A word about how the Selenium project releases software
The project is entirely staffed with volunteers
No one is paid to work on Selenium
There is no huge corporate entity that employs people specifically to work on Selenium
Some companies allow their employees to contribute back, but it’s not their primary role
Releases happen when we have time and coordination between all of the people necessary to do so
Hence the “by Christmas” story
Near term:
Spec goes rec
More browser vendors implement (Google, Apple, Microsoft)
Selenium defaults to spec-compliant, and Selenium remote server speaks spec dialect of protocol
Companion project (Appium) will want to adjust to protocol changes (spec has supported extension points)
Cloud vendors will need to adjust to spec compliance, especially in the area of session creation
Longer term
Anything beyond this point is speculation on my part. I may be wrong.
Let’s gaze into the crystal ball anyway
Seeing a trend in commercial tool vendors having some level of support for Selenium via WebDriver
Expect this to continue (some holdouts for now)
Legacy Firefox driver is removed from project, IE driver continues to be provided (tell John Jansen “pretty good” story)
Project slims down to a few things: language bindings, a test suite, and automation atoms JavaScript library
Things that will continue, but I have no idea what form they’ll take:
Docs. Need to improve them from their current state, and to better reflect the state of the art in the industry
Record/playback tool. Not a priority for anyone on the current development team. Efforts come in fits and starts (IDE summit after SeConf London, Selenium Builder)
Support classes going away/moved to companion projects
The future is bright for Selenium. The project has been around for over 13 years, and is still going strong.