Selenium (software)

Selenium is an open source umbrella project for a range of tools and libraries aimed at supporting browser automation.

With versatile tools like WebDriver, Selenium supports various programming languages and facilitates cross-browser testing, making it a go-to choice for efficient and scalable web automation.

In 2005 Dan Fabulich and Nelson Sproul (with help from Pat Lightbody) made an offer to accept a series of patches that would transform Selenium-RC into what it became best known for.

At the same time, Simon Stewart at ThoughtWorks developed a superior browser automation tool called WebDriver.

[8] Selenium is composed of several components with each taking on a specific role in aiding the development of web application test automation.

[10][11][12][13] Scripts may be automatically recorded and edited manually providing autocompletion support and the ability to move commands around quickly.

Selenese provides commands for performing actions in a browser (click a link, select an option) and for retrieving data from the resulting pages.

Selenium Remote Control (RC) is a server, written in Java, that accepts commands for the browser via HTTP.

To make writing tests easier, Selenium project currently provides client drivers for PHP, Python, Ruby, .NET, Perl and Java.

An instance of selenium RC server is needed to launch html test case - which means that the port should be different for each parallel run.

The original version directly launched a process for the browser in question, from the test language of Java, .NET, Python or Ruby.

After the refactor by Dan Fabulich and Nelson Sproul (with help from Pat Lightbody) there was an intermediate daemon process between the driving test script and the browser.

The benefits included the ability to drive remote browsers and the reduced need to port every line of code to an increasingly growing set of languages.

And significantly[editorializing] Selenium RC is the first and foremost automated web testing tool that enabled users to adopt their preferred programming language.

[19] Below are some of the simplest instructions one can make: Selenium Grid is a server that allows tests to use web browser instances running on remote machines.