Who says no for automation & who says no for an open source !!!
In simple words, Selenium is an automation testing tool for browsers. Web applications can be tested using a single interface with the preferred programing language .
It supports various programming languages like Java, JavaScript, C#, Python, Ruby, NodeJs , PHP, Perl, Ruby, etc. to create test scripts.
Selenium is compatible with all major browsers like Chrome, Firefox, Opera, Safari, Edge, Internet Explorer.
Each browser is supported through specific WebDriver implementations, which act as a bridge between Selenium and the browser.
Using Selenium WebDriver, we can write automation scripts in our preferred programming language and execute them across different browsers. Selenium WebDriver provides an integrated API that abstracts the differences between browsers, allowing for seamless automation and consistent test results.
Components of Selenium
Selenium IDE
Selenium RC (Remote Control)
Selenium WebDriver
Selenium Grid

Selenium IDE
Selenium IDE (Integrated Development Environment) is basically a Record/Run tool that is available as a browser plugin for Mozilla Firefox and Google Chrome. It follows a record-and-playback approach wherein you can record your test steps and export the tests in the preferred Selenium-supported programming language. These exported tests can also be used with Selenium Web driver.
IDE is majorly used for prototyping and main advantage of IDE anyone without programming language can use this tool.
Selenium RC (Remote Control)
Selenium RC is a Java based server that accepts commands through HTTP. It's a testing framework that allows to
write the automated test scripts for web applications. Selenium RC is the main project that sustained before Selenium Webdriver. Since the new versions of Selenium Webdriver offers more powerful features it less used.
It allows us to write automated web application UI tests with the help of full power of programming languages such as Java, C#, Perl, Python and PHP to create more complex tests such as reading and writing files, querying a database, and emailing test results.
With Selenium RC works in such a way that the client libraries can communicate with the Selenium RC Server passing each Selenium command for execution. Then the server passes the Selenium command to the browser using Selenium-Core JavaScript commands.
The browser executes the Selenium command using its JavaScript interpreter.
Selenium RC works as
The Selenium Server launches and kills browsers. In addition to that, it interprets and executes the commands. It also acts as an HTTP proxy by intercepting and verifying HTTP messages passed between the browser and the application under test.
Client libraries that provide an interface between each one of the programming languages (Java, C#, Perl, Python and PHP) and the Selenium-RC Server.
Selenium Web Driver
Selenium WebDriver is a web framework that permits you to execute cross-browser tests. This tool is used for automating web-based application. To test and verify that the application meets its expectations. Selenium WebDriver allows you to choose a programming language to create test scripts. It enables us to execute cross-browser testing.
Steps in a Selenium WebDriver Script
· Create a WebDriver instance.
· Navigate to a webpage.
· Locate a web element on the webpage via locators in selenium.
· Perform one or more user actions on the element.
· Preload the expected output/browser response to the action.
· Run test.
· Record results and compare results from them to the expected output.
WebDriver performs actions on web elements. It supports various programming languages like Java,C#,PHP,
Python,etc.... It can also be integrated with frameworks like TestNG and JUnit for test management.
Structure of Selenium Webdriver

Selenium test script - Selenium test script is the test code written in any of the mentioned programming languages that are interpreted by the driver
JSON Wire Protocol - JSON Wire Protocol provides a transport mechanism to transfer data between a server and a client. JSON Wire Protocol is the industry standard for various web services
Browser drivers - Selenium uses drivers, specific to each browser to establish a secure connection with the browser
Browsers - Selenium WebDriver supports multiple web browsers to test and run applications on
Key Points for the advantage of using Selenium Web Driver
Cross-Browser Support – With Selenium WebDriver, users can test their web applications across multiple browsers, such as Chrome, Firefox, and Internet Explorer. This ensures that applications are compatible across all platforms and devices.
Integration with Other Tools – With its support for integration with other tools like Appium and Jenkins CI/CD pipelines, Selenium WebDriver offers powerful options for automating tests on different platforms.
Test Reports & Dashboards – Selenium provides detailed test reports which can be used to monitor test progress, as well as dashboards that offer visual representations of test results in real-time. This makes it easy for testers to identify issues or inconsistencies in automated tests quickly.
Parallel Testing & Grid Distribution – Parallel testing allows users to run multiple tests simultaneously on different machines or environments. Additionally, Grid Distribution will enable users to distribute tests across multiple devices, which helps speed up execution time when running large numbers of tests at once.
User Extensions & Plugins – Users can extend the capabilities of Selenium WebDriver by installing plugins or user extensions which add new features or allow them to customize existing ones according to their specific needs or requirements.
Selenium Grid
Selenium Grid is a tool that distributes the tests across multiple physical or virtual machines so that we can execute scripts in parallel (simultaneously). It dramatically accelerates the testing process across browsers and across platforms by giving us quick and accurate feedback.
Selenium Grid allows us to execute multiple instances of WebDriver or Selenium Remote Control tests in parallel which uses the same code base, hence the code need NOT be present on the system they execute. The selenium-server-standalone package includes Hub, WebDriver, and Selenium RC to execute the scripts in grid.
Selenium Grid prime components
Hub: Hub is the central point to the entire GRID Architecture which receives all requests. There is only one hub in the selenium grid. Hub distributes the test cases across each node.
Node: There can be multiple nodes in Grid. Tests will run in nodes. Each node communicates with the Hub and performs test assigned to it.