Repost - Notes: Selenium 3, the Spec, and Onwards by Simon Stewart

Notes: Selenium 3, the Spec, and Onwards by Simon Stewart

Title: Selenium 3, the Spec, and Onwards
Speaker: Simon Stewart, Selenium Project Lead
Host: Applitools
Date: Wed. May 25, 2016 @ 1:00 PM EDT
Duration: 60 minutes

Summing up Simon's Webinar:
  • Selenium 3 (no release date given) will be a removal of all old Selenium RC code into a legacy library called "leg-RC".
  • Selenium 4 will move closer to the new W3C WebDriver Protocol they have been pushing for.
  • Selenium 5 will be the full W3C WebDriver.

Before that information was given at the end of the talk, Simon took a long walk down Memory Lane...

How Selenium Started

Jason Huggins ( @hugs ) at the consulting company, ThoughtWorks, was in Tech Support working on a new web application to track time and expenses. Jason would fix one bug only to have it appear in another browser. He saw Ward Cunningham FIT (Framework for Integrated Test). Jason took this idea and realized that all browsers handled HTML differently, but all browsers used Javascript. Perhaps this could be leveraged?

Selenium Core was created. It could manipulate the DOM (Document Object Model), simulate clicks.

Tests, like with FIT, were was based on HTML tables. Selenium Remote Control (RC) was a good tool to start automating tests. He worked with Paul Hammant to add new functionality to it, where people could use the programming language of their choice.

Two years after Jason stated, Simon Stewart was using HTTPUnit for browser testing… and the web browser was rubbish (See the official home for HTTP Unit). HTTPUnit was in a gross violation of object oriented programming. Someone mentioned that people should put in wrappers around the functionality. He did this through six or seven iterations.

Simon borrowed the word WebDriver from another project. He wrote a fresh version, a “clean room” version of what he did before. At the time he though he would be done, back in 2007, and he thought he would be done in a year. Maybe two.

Jason and Simon met up when they both moved on to Google. At the time, AJAX was becoming popular. The problem was that you couldn’t just simulate a click. You had to emulate the mouse down and mouse up. As web application were becoming more sophisticated, it became harder to emulate what needed to be done.

Simon foolishly he said, wrote versions of WebDriver tightly coupled to the browser. Paul Hammant, Simon said, called him an idiot for doing this. The product became branded Selenium 2.0.

What is Selenium 3?

Simon once announced three years ago they would release the next version of Selenium WebDriver by Christmas... Luckily, Simon joked, he didn’t say what Christmas.

"What is in Selenium 3 and why are we bumping in a version number?"

Only the current Selenium WebDriver API will be there. All outdated Selenium Core code will be taken out.

With the Python and Ruby bindings, there will be practically be no changed. Java though… it will be breaking up into three separate libraries:

  • Just the WebDriver classes. 

Selenium 3 Server: 
  •  Lightweight command line compatible remote server. 

  • The old Selenium client-side classes.
  • WebDriverBackedSelenium.
  • Remote end point for SEL server. 

... As Simon said, “This is why the team doesn’t let me name things very often. I like a bad pun”.

If you are still using Selenium RC, there will be upgrade paths. New implementation of HTML table runner. All of this work is placed in for those who made a huge investment with Selenium RC.

Continue reading here:


  1. Glad you like my post! I have much more at

    -T.J. Maher

    1. Thanks TJ! I would recommend your posts to every automation tester!


Post a Comment

Popular posts from this blog

Trim / Remove spaces in Xpath?

Complete list of Serenity properties

XPATH for IE / internet explorer