
- Selenium - Home
- Selenium - Overview
- Selenium - Components
- Selenium - Automation Testing
- Selenium - Environment Setup
- Selenium - Remote Control
- Selenium - IDE Introduction
- Selenium - Features
- Selenium - Limitations
- Selenium - Installation
- Selenium - Creating Tests
- Selenium - Creating Script
- Selenium - Control Flow
- Selenium - Store Variables
- Selenium - Alerts & Popups
- Selenium - Selenese Commands
- Selenium - Actions Commands
- Selenium - Accessors Commands
- Selenium - Assertions Commands
- Selenium - Assert/Verify Methods
- Selenium - Locating Strategies
- Selenium - Script Debugging
- Selenium - Verification Points
- Selenium - Pattern Matching
- Selenium - JSON Data File
- Selenium - Browser Execution
- Selenium - User Extensions
- Selenium - Code Export
- Selenium - Emitting Code
- Selenium - JavaScript Functions
- Selenium - Plugins
- Selenium WebDriver Tutorial
- Selenium - Introduction
- Selenium WebDriver vs RC
- Selenium - Installation
- Selenium - First Test Script
- Selenium - Driver Sessions
- Selenium - Browser Options
- Selenium - Chrome Options
- Selenium - Edge Options
- Selenium - Firefox Options
- Selenium - Safari Options
- Selenium - Double Click
- Selenium - Right Click
- HTML Report in Python
- Handling Edit Boxes
- Selenium - Single Elements
- Selenium - Multiple Elements
- Selenium Web Elements
- Selenium - File Upload
- Selenium - Locator Strategies
- Selenium - Relative Locators
- Selenium - Finders
- Selenium - Find All Links
- Selenium - User Interactions
- Selenium - WebElement Commands
- Selenium - Browser Interactions
- Selenium - Browser Commands
- Selenium - Browser Navigation
- Selenium - Alerts & Popups
- Selenium - Handling Forms
- Selenium - Windows and Tabs
- Selenium - Handling Links
- Selenium - Input Boxes
- Selenium - Radio Button
- Selenium - Checkboxes
- Selenium - Dropdown Box
- Selenium - Handling IFrames
- Selenium - Handling Cookies
- Selenium - Date Time Picker
- Selenium - Dynamic Web Tables
- Selenium - Actions Class
- Selenium - Action Class
- Selenium - Keyboard Events
- Selenium - Key Up/Down
- Selenium - Copy and Paste
- Selenium - Handle Special Keys
- Selenium - Mouse Events
- Selenium - Drag and Drop
- Selenium - Pen Events
- Selenium - Scroll Operations
- Selenium - Waiting Strategies
- Selenium - Explicit/Implicit Wait
- Selenium - Support Features
- Selenium - Multi Select
- Selenium - Wait Support
- Selenium - Select Support
- Selenium - Color Support
- Selenium - ThreadGuard
- Selenium - Errors & Logging
- Selenium - Exception Handling
- Selenium - Miscellaneous
- Selenium - Handling Ajax Calls
- Selenium - JSON Data File
- Selenium - CSV Data File
- Selenium - Excel Data File
- Selenium - Cross Browser Testing
- Selenium - Multi Browser Testing
- Selenium - Multi Windows Testing
- Selenium - JavaScript Executor
- Selenium - Headless Execution
- Selenium - Capture Screenshots
- Selenium - Capture Videos
- Selenium - Page Object Model
- Selenium - Page Factory
- Selenium - Record & Playback
- Selenium - Frameworks
- Selenium - Browsing Context
- Selenium - DevTools
- Selenium Grid Tutorial
- Selenium - Overview
- Selenium - Architecture
- Selenium - Components
- Selenium - Configuration
- Selenium - Create Test Script
- Selenium - Test Execution
- Selenium - Endpoints
- Selenium - Customizing a Node
- Selenium Reporting Tools
- Selenium - Reporting Tools
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium & other Technologies
- Selenium - Java Tutorial
- Selenium - Python Tutorial
- Selenium - C# Tutorial
- Selenium - Javascript Tutorial
- Selenium - Kotlin Tutorial
- Selenium - Ruby Tutorial
- Selenium - Maven & Jenkins
- Selenium - Database Testing
- Selenium - LogExpert Logging
- Selenium - Log4j Logging
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash Testing
- Selenium - Apache Ant
- Selenium - Github Tutorial
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
- Selenium Miscellaneous Concepts
- Selenium - IE Driver
- Selenium - Automation Frameworks
- Selenium - Keyword Driven Framework
- Selenium - Data Driven Framework
- Selenium - Hybrid Driven Framework
- Selenium - SSL Certificate Error
- Selenium - Alternatives
Selenium - Automation Testing
Selenium is used primarily to automate tests on web applications. It is free, does not require any licensing cost. Automation testing with Selenium is much more preferred than manual testing since the automation testing with Selenium has a better return on investment than manual effort.
Different Types of Selenium Tests
Selenium can be used to create different types of tests as listed below −
- Functional Tests − These tests help to check various new functionalities and features of the application or the product under test.
- Regression Tests − These tests help to check if code changes have broken an existing functionality of the application.
- Smoke Tests − These tests help to verify if a new build is stable enough to carry out testing activities on it.
- Integration Tests − These tests help to validate if the integration of all the modules are working together as a unit.
- Unit Tests − These tests are created by the developers to test their code.
Selenium Automation Testing Tools
Selenium comprises a group of tools often called the Selenium components. These tools are listed below −
- Selenium IDE − It is available as an addon for Chrome and Firefox browsers.
- Selenium Remote Control − It is server developed in Java and allows writing automation tests in multiple languages like Java, Perl, Python, and so on.
- Selenium Webdriver − It is a tool that can be integrated with other frameworks like TestNG, JUnit, and so on and can be used with multiple programming languages.
- Selenium Grid − It is a tool that helps to achieve parallel execution across various platforms and browsers.
Differences Between Selenium Version 3.x and 4.x
The latest version of Selenium is on version 4. From the Selenium 4 version, the entire architecture is fully compatible with W3C - World Wide Consortium meaning Selenium 4 follows all the standards and guidelines given by W3C.
The basic difference between Selenium 3.x and Selenium 4.x is that, in Selenium 3 the communication between client and server is done by JSON Wire protocol, however, from Selenium 4, there is direct communication between the server and client, following the W3C guidelines.
Before Selenium 4, the communication between the client and server was carried on using the JSON Wire protocol over HTTP. However, there is no existence of JSON Wire protocol from Selenium 4, and there is direct communication between the client and server using the W3C protocols.
Also, Selenium 4 gives some additional locators(apart from the regular locators like id, class, xpath, and so on) called the Relative locators with the help of the methods - above, below, near, toRightOf, toLeftOf, and chaining of multiple Relative locators. Selenium 4 also gives access to the ChromeDevTools which help for debugging, network traffic analysis, and other features that help in automation.
Selenium Web Driver architecture as per version 4.0 in a simplified diagram is described below −

Why Selenium is Used for Automating Testing?
- Automation tests using Selenium can be written in multiple programming languages like the Java, C#, Python, JavaScript, and so on.
- Selenium webdriver supports browsers like Chrome, Firefox, Safari, IE, and so on.
- Selenium webdriver works on more than one platforms like Windows, Mac, Linux, Android, and so on.
- Headless execution can be achieved with the help of the HTMLUnit Driver.
- Selenium webdriver does not require a server to initiate test execution and it communicates directly with the browser.
- Selenium is open-source and comes without any licensing cost.
- Selenium can be extended for various technologies that expose DOM.
- Selenium has a big community support to resolve issues.
Disadvantages of Using Selenium
- Selenium supports only web based applications.
- Selenium should not be used to automate tests on QR, captcha and barcode scenarios.
- Selenium does not have an in-built object repository or recovery scenario.
- Selenium has no default test report generation.
- Selenium Webdriver requires programming and technical knowledge to develop automated tests.
- Selenium Webdriver requires time to be more compatible and stable with new browsers.
- Selenium Webdriver is difficult to set up since no vendor support is available.
Run Selenium Automation Testing in Different Languages
Selenium can be used to test web applications using multiple browsers, platforms, and devices using different programming languages like Java, Python, Ruby, JavaScript, and so on. Based on the language we are using, the preconditions required to configure the Selenium tests also change. The below links will help to set up and run automation testing in Selenium in different languages −
- Selenium with Java Tutorial
- Selenium with Python Tutorial
- Selenium with C# Tutorial
- Selenium with JavaScript Tutorial
- Selenium with Kotlin Tutorial
This concludes our comprehensive take on the tutorial on Selenium - Automation. Weve started with describing what Selenium is, different types of Selenium Tests, Selenium automation testing tools, differences between Selenium 3.x and Selenium 4.x, why Selenium is used for automating testing, disadvantages of Selenium, and how to run automation testing in Selenium in different languages.
This equips you with in-depth knowledge of the Selenium - Automation Testing. It is wise to keep practicing what youve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.