History of Selenium

Profile picture for user dgulati

Selenium is not just a single tool but a suite of software and is one of the most preferred and popular open-source web testing framework. Selenium is based on different technologies and it has different developers as well. So let’s have a look on history of selenium and the people who involved in creating the selenium.

Story Starts (2004): Selenium first came to life in 2004 when Jason Huggins; an engineer in Thought Works (Chicago) was working on an internal Time and Expenses application. He has help from Paul Gross and Jie Tina Wang. 

Jason got an idea and developed “JavaScriptTestRunner” to automate the verification work that need to be repeatedly performed on a daily or change basis. He started demoing the test tool to various colleagues. Many were excited about its immediate and intuitive visual feedback, as well as its potential to grow as a reusable testing framework for other web applications. 

“JavaScriptTestRunner” was later named as “Selenium Core” and released into the market as an Open Source tool.

Same Origin Policy (2004):  In 2004 fellow ThoughtWorker Paul Hammant saw the demo, and started discussions about the open sourcing of Selenium, as well as defining a 'driven' mode of Selenium where you'd get to use Selenium over the wire from a language of your choice, that would get around the 'same origin policy'.

The “Same Origin Policy” followed by different web applications as  a security measure, has become an issue for the “Selenium Core” and was started restricting from accessing the Web Applications. In Simple terms, “Same Origin Policy” is nothing but a JavaScript program of an X domain cannot access the pages hosted at a different domain say Y domain.

Other (then) colleagues, Aslak Hellesoy and Mike Melia, experimented with different ideas for the 'server' piece, including page rewriting to get around the same origin policy. Paul wrote the original server piece in Java, and Aslak and Obie Fernandez ported that the client driver to Ruby, setting the foundation for drivers in yet more languages.

Selenium for Commercial projects (2004): ThoughtWorkers in various offices around the world picked up Selenium for commercial projects, and contributed back to Selenium from the lessons learned on these projects. Mike Williams, Darrell Deboer, and Darren Cotterill all helped with the increasing the capabilities and the robustness of it.

Birth of Selenium RC: There came another guy named “Paul Hammant”, who came up with an idea of creating a Proxy Server to trick the browser in believing that Selenium Core (JavaScript Program) and Web Application code (Web Server) belong to the same domain, even though they are not. 

Selenium Remote Control (RC) is a server, written in Java, that accepts commands for the browser via HTTP. RC makes it possible to write automated tests for a web application in any programming language, which allows for better integration of Selenium in existing unit test frameworks.

Selenium Remote Control was a refactoring of Driven Selenium or Selenium B designed by Paul Hammant, credited with Jason as co-creator of Selenium. The original version directly launched a process for the browser in question, from the test language of Java, .Net, Python or Ruby. 

Birth of Selenium Grid: “Patrick Lightbody” came up with a system known as “Hosted QA”, which was later renamed as “Selenium Grid”. Selenium Grid is a server that allows tests to use web browser instances running on remote machines. With Selenium Grid, one server acts as the hub. Tests contact the hub to obtain access to browser instances. 

Birth of Selenium IDE: Shinya Kasatani in Japan became interested in Selenium, and realised that he could wrap the core code into an IDE module into the Firefox browser, and be able to record tests as well as play them back in the same plugin. This tool, turned out an eye opener in more ways that was originally thought as it is not bound to the same origin policy. Mike Williams got involved again in the Summer of 2006 where he led a team from ThoughWorks China, primarily Wang Peng Chao, Huang Liang and Xiong Jie but with the help of others. They worked on improving Selenium Core with the goal of getting it closer to 1.0

Jason Huggins Moved to Google (2007): The evolution of Selenium during this period was helped by the fact that Jason Huggins, the original Selenium developer, moved in 2007 to Google, where he was able to continue work on the tool.

Birth of Selenium WebDriver (2007) / Selenium 1.0: In 2007, another ThoughtWorks employee, Simon Stewart, developed another testing tool for web apps called WebDriver. WebDriver is not rely on JavaScript to interact with the browser, as it control the browser from the OS level. It was the first cross platform testing framework which control the browser from OS level. Selenium 1 = Selenium IDE + Selenium RC + Selenium Grid

Selenium 2.0 (2011): In 2011, the projects were merged to form one web testing tool to rule them all. The combination of Selenium and WebDriver became Selenium 2.0, which debuted in July 2011.  Selenium 2 = Selenium IDE + Selenium WebDriver 2.x + Selenium Grid. Selenium Team has decided to merge both Selenium WebDriver and Selenium RC to form a more powerful Selenium tool. 

Selenium 3.0: Selenium team has decided to completely remove the dependency for Selenium RC. Selenium WebDriver was taken to the next level where the dependency of Selenium  RC can be completely removed.

Finally Selenium Team has achieved it and released a latest version of Selenium known as Selenium 3. 

Selenium 3 = Selenium IDE + Selenium WebDriver 3.x + Selenium Grid

New Selenium IDE (2018): Selenium team has deprecated the older version of Selenium IDE on August 2018 and in place of that released a new version of Selenium IDE into the market.

The latest version of Selenium IDE works on both Firefox and Chrome Browsers.

Selenium 4.0: Selenium Team has announced of releasing new Selenium version i.e. Selenium 4, but it has not released it yet.