Selenium is a powerful open-source testing tool that is widely used by software developers, testers, and quality assurance professionals to automate web testing and improve the quality of web applications. In this article, we will explore the history of Selenium, the types of app testing supported by the tool, and how it has evolved over the years.
History of Selenium
Selenium was first developed by Jason Huggins, a software engineer at ThoughtWorks, in 2004. Huggins developed the tool as an internal project to automate testing for a web application.
The origin of the name Selenium can be traced back to a humorous email sent by Jason, where he made a joke about a competitor named Mercury. Mercury Interactive’s QTP was a hugely popular commercial testing tool of the time. In the email, Huggins suggested that taking Selenium supplements could cure Mercury poisoning. The name Selenium was then adopted by others who received the email and it stuck as the name for the testing framework.
After releasing the tool as open-source software, Huggins worked with other developers to continue developing and improving Selenium. The tool has since evolved into a suite of tools for automated web testing, including Selenium WebDriver, Selenium IDE, and Selenium Grid.
Types of App Testing Supported by Selenium
Selenium supports a wide range of testing scenarios for web applications, including functional testing, performance testing, and regression testing. With Selenium, you can automate tasks such as form filling, button clicking, and page navigation to test the functionality of your web application.
Selenium also supports testing for mobile web applications and native mobile applications through various frameworks and tools that are built on top of the Selenium WebDriver API. Some popular frameworks and tools for mobile application testing with Selenium include Appium, Selendroid, and iOS Driver.
Selenium OS Support
Selenium is a cross-platform testing tool, which means it can be used on a wide range of operating systems. Selenium supports all prominent operating systems like Windows, macOS and Linux.
Selenium Browser Support
Selenium supports all prominent browsers like Chrome, Firefox, Edge, Internet Explorer 11 and Safari.
What all programming languages can be used to write tests in Selenium?
Selenium supports several programming languages, including Java, Python, C#, Ruby, JavaScript, and PHP. The selection of a programming language often depends on personal preference and the specific needs of the testing project.
Python is the most widely used programming language for Selenium. Following closely, C# is particularly popular within the Microsoft ecosystem. Java holds the third position. Since Selenium was initially developed using Java, many of its core APIs are written in this language.
Overall, the choice of programming language for Selenium largely depends on personal preference and the specific requirements of the testing project. It’s important to choose a language that you are comfortable with and that will enable you to write efficient and effective tests.
Official Docs and Website
Selenium’s official website and documentation can now be found on selenium.dev, which has replaced seleniumhq.org as the new home of the project. This change was announced on Twitter in November 2019, and all new content and updates are now being served through selenium.dev.
We're happy to announce that we have (finally!) refreshed our site. Head on over to https://t.co/0xAiKdHrPj and have a browse! Thanks to @diegofmolina and @manoj9788 for making this happen.
— Selenium (@SeleniumHQ) November 12, 2019
How Selenium Has Evolved Over the Years
Over the years, Selenium has evolved to become a powerful and flexible tool for web testing.
In 2008, Selenium WebDriver was introduced as a new way to automate web testing using a more modern and flexible API. WebDriver allows developers to write tests in a variety of programming languages, including Java, Python, and Ruby, and provides a more streamlined and efficient way to interact with web elements.
In 2012, Selenium IDE was introduced as a tool for recording and playing back user interactions with web applications. The tool allowed users to quickly and easily create automated tests without writing any code. Selenium IDE was officially retired in 2017 when Firefox released version 55.0, which broke the compatibility of Selenium IDE with the browser. However, in 2019, Applitools helped revive the Selenium IDE project by creating a new version that works on Chrome, Firefox and Edge browsers. They also added some new features and improvements to make Selenium IDE more modern and user-friendly. Selenium IDE is now actively developed by Applitools and other contributors from the Selenium community. You can find the latest releases and updates on their official website.
Having said that, experienced practitioners of Selenium highly recommend using Selenium WebDriver and tend to avoid working with Selenium IDE.
In 2014, Selenium Grid was introduced as a tool for running tests in parallel across multiple machines and browsers. This allows developers to speed up the testing process and test their applications on a wide range of configurations.
Selenium Usage Stats
Since January 2024, Selenium has made its Selenium Manager usage statistics publicly available.
Here are some interesting stats for Jan to June 2024:
- India, South Korea, and the US are the top 3 countries by the number of users.
- Windows OS has 77% usage, significantly outnumbering the second OS, Linux.
- Among programming languages, Python (62.3%) is the clear winner, followed by C# (19.9%) and Java (13.5%).
- The Chrome browser is on top with 85.7% of users, followed by Firefox at 11.9% and Microsoft Edge at 7%.
Selenium Versions
The team at Selenium maintains an active blog at selenium.dev/blog/. As of November 2024, the latest version of Selenium is 4.23.0.
Selenium 4.6.0
Selenium 4.6.0, released in November 2022, brought more than just regular features and enhancements—it introduced a revolutionary tool called Selenium Manager.
Previously, Selenium practitioners faced the ongoing challenge of managing drivers and ensuring their compatibility with frequently updated browser versions. With Selenium Manager, this task has become much simpler. By adding a single line of code in your editor, Selenium Manager automatically handles the downloading and installation of compatible browser drivers in the background, seamlessly and silently.
Selenium 4.0
Selenium 4.0 was released in 2021 and bought several new features and improvements to the Selenium testing framework, including:
- Improved Selenium Grid: Selenium Grid has been updated to make it easier to distribute tests across different environments, and it now includes support for Docker and Kubernetes.
- New WebDriver APIs: Selenium 4 introduces new WebDriver APIs that provide better support for native event handling and make it easier to use. Better way of handling authentication was introduced in Selenium 4.
- Relative locators: Selenium 4 introduces a new feature called relative locators that makes it easier to locate elements on a web page based on their relationship to other elements.
Selenium 3.0
Selenium 3.0 was released in 2016 and introduced several new features and improvements over the previous version. The major changes include:
- Removal of Selenium RC: Selenium 3.0 removed support for Selenium RC and made WebDriver the primary way of interacting with web browsers.
- Updated WebDriver API: Selenium 3.0 introduced a new version of the WebDriver API that addressed several issues with the previous version and made it easier to use. As per the announcement –
When we shipped Selenium 2, the Selenium project was responsible for providing the driver for each browser. Now, we are happy to say that all the major browser vendors ship their own implementations (Apple, Google, Microsoft, and Mozilla). Because the browser vendors know their browsers better than anyone, their WebDriver implementations can be tightly coupled to the browser, leading to a better testing experience for you.
Selenium 2.0
Selenium 2.0 was released in 2011 and introduced several new features and improvements over the previous version, including:
- WebDriver API: Selenium 2.0 introduced the WebDriver API, which provides a simpler and more powerful way of interacting with web browsers programmatically. The WebDriver API allows developers to write tests in various programming languages, such as Java, Python, and Ruby.
- Native support for browser automation: Selenium 2.0 introduced native support for browser automation, which means that developers no longer need to rely on JavaScript engine of the browser to automate web browsers.
- Selenium Grid: Selenium 2.0 introduced Selenium Grid that allows developers to run tests on multiple browsers and platforms simultaneously.