Selenium is a free (open source) automated testing framework used to validate web applications on a variety of browsers and platforms. You can create Selenium test scripts using multiple programming languages such as Java, C #, and Python. Tests performed using the Selenium test tool are commonly referred to as Selenium tests. Selenium Software is not a single tool, but a set of software, each part of which addresses the needs of your organization’s individual Selenium QA testing.
History of Selenium
- Selenium was created by Jason Huggins (engineer at Thought Works).
- Challenges due to Same Origin Policy and introduction of Selenium RC by Paul Hammant( another Thought Works engineer).
- Simon Stewart (engineer at Google) developed WebDriver that spoke directly to the browser using the native method for the browser and opening system.
- Selenium Web Driver used the concept of native drivers to interact with the Application under test and hence eliminated the need for a proxy server that was used previously in Selenium RC.
- Selenium 1 (i.e. Selenium IDE + Selenium RC + Selenium Grid) merged with Selenium WebDriver to make Selenium more powerful
- Basically, Selenium and WebDriver merged to form Selenium WebDriver (Selenium 2).
- Selenium 3 got release on October, 2016.
- Selenium team released alpha version Selenium 4 which really got major changes and new features that were announced by Simon Stewart in August 2018 during a conference.
- However, till date only an alpha version is available, and its stable version is yet to be rolled out.
Following are the features of Selenium 4:
- W3C Standardization of WebDriver API
- Improved Selenium Grid
- Introduction of Relative Locators
- Full page Screenshot
- Better Observability and Traceability
- Refreshed and rich documentation
- Selenium is a set of different tools each with a different approach to support test automation.
- Selenium IDE
- Selenium RC (Selenium 1)
- Selenium WebDriver
- Selenium Grid
- Selenium IDE is an extension for Firefox that allows you to record and playback tests.
- Selenium RC provides an API(Application Programming Interface) and library for each of its supported languages such as Java, C#, PHP, Python, etc.
- Selenium Web Driver is a collection of language specific bindings to drive a browser. It is designed in a simpler and more concise programming interface along with addressing some limitations in the Selenium-RC API.
- Selenium Grid is a smart proxy server that makes it easy to run tests in parallel on multiple machines. It allows you to run test cases in different machines across different platforms. It supports distributed test execution. You can also run the test cases in parallel in multiple machines.