An Overview of Selenium

An Overview of Selenium, What is Selenium?, Features of Selenium, Selenium History, Selenium Components, and Selenium Automation Framework.

Selenium Overview

1. What is Selenium?
2. Features of Selenium
3. Selenium History
4. Selenium Components / Selenium’s Tool Suite
5. Platforms supported by Selenium
6. Advantages of Selenium
7. Drawbacks of Selenium
8. Selenium Test Environment
9. Selenium Test Process

1. What is Selenium?

Selenium is a suite of tools for automating web browsers.

It is an open-source automated testing framework used to test web applications across different browsers and operating environments.

It supports functional testing at the System Testing level and also supports Acceptance Testing.

2. Features of Selenium

1. Open source and Portable:
Selenium is an Open source and Portable Web Testing Framework.

2. Type of Testing:
Selenium supports Functional & Regression Testing of Web Applications.

3. Operating System Support:
Selenium supports various Operating environments (MS Windows, Linux, Macintosh) to conduct Testing.

4. Programming Language Support:
Selenium supports various Programming Languages (Java, Python, C#.Net, Ruby, JavaScript, and Kotlin) for writing Test Cases.

5. Browser Support:
Selenium supports various Browsers (Google Chrome, Mozilla Firefox, MS Edge, Opera, and Safari) to execute the Test Cases.

6. Testing Variants:
Selenium supports Batch Testing, Data-Driven Testing, Cross Browser Testing, and Database Testing.

Note: Selenium is not an all-inclusive Test Tool, so it requires third-party plugins and frameworks to broaden the scope of testing.

3. Selenium History

All Selenium projects were released under Apache 2.0 license, The Apache License is a free software license, it allows users to use the software for any purpose, to distribute it, and modify it. But selling modified code is not allowed. No commercial transactions permitted for Selenium Software.

• Selenium first came to life in 2004 when Jason Huggins was testing an internal application at ThoughtWorks.

• In 2006 an engineer at Google named Simon Stewart started work on a project he called WebDriver.

• In 2008, the whole Selenium team decided to merge Selenium Webdriver with Selenium RC in order to
form a more powerful tool called Selenium 2.0

Selenium 1.0
(Selenium IDE, Selenium RC, Selenium Grid)

Selenium 2.0 (Selenium 1.0 + WebDriver)
(Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Grid)

Note: Selenium RC is only for maintenance projects.

Selenium 3.0
(Selenium IDE, Selenium WebDriver, Selenium Grid)

Note: Selenium RC was removed from Selenium 3.0.

Selenium 4.0 (* Stable version not released)
(Selenium IDE, Selenium WebDriver, Selenium Grid)

Note: As per Selenium’s official website (selenium.dev), Latest Selenium stable version is – 3.141.59, and Latest Selenium 4 Beta version is – 4.0.0-beta-3.

4. Selenium Components / Selenium’s Tool Suite

Selenium is not just a single tool but a suite of software, each with a different approach to supporting automation testing. It comprises four major components which include:

i. Selenium IDE (Integrated Development Environment)
ii. Selenium Remote Control (Now Deprecated)
iii. Selenium WebDriver
iv. Selenium Grid

i. Selenium IDE

Selenium IDE is a browser plug-in (Firefox and Chrome) and prototype tool.

• It is used to write and execute test cases

• User/tester can record the test cases or type test cases

• User/tester can edit test cases (Add/Update/Delete)

• User can create test suites/test batches

• User can debug test cases, and add comments

Note: Selenium IDE Test cases can be created using Element locators and Selenese Commands

Drawbacks of Selenium IDE:

• It doesn’t support programming to enhance test cases, so it is not suitable for complex test design

• No Data-Driven testing support.

• No centralized maintenance of objects/elements

• It doesn’t generate detailed test results

ii. Selenium RC – (It was removed from the Selenium suite)
iii. Selenium WebDriver

Selenium WebDriver Test cases can be created using Element locators and WebDriver API commands, and we can enhance test cases using programming and third party frameworks

• Selenium WebDriver supports various operating systems, programming languages, and browsers.

• Selenium WebDriver supports Batch Testing, Data-Driven Testing, Cross Browser Testing, and Database Testing.

Drawbacks of Selenium WebDriver

• Selenium WebDriver has no IDE (It has a Programming interface only)
(It takes more time & efforts to create test cases)

• No built-in Object Repository facility
(* Using POM we can create Object Repositories)

• No built-in Result report facility
(*Using a Testing framework like ‘TestNG’ we can generate test results)

• No other test tool integration for test management.

• Difficult to configure test environment when it compares to commercial tools like UFT, RFT etc…

iv. Selenium Grid

• Selenium Grid is only for Test execution and doesn’t support Test case development

• Selenium Grid is used for Parallel testing, it follows the Hub-Node architecture to achieve parallel execution of test scripts.

• Selenium Grid executes Selenium Webdriver test cases against different browsers and operating systems using multiple machines (computers).

5. Platforms supported by Selenium

Selenium works with various Operating systems, browsers, programming languages and Testing Frameworks

i. Operating Systems

MS Windows
Linux
Macintosh etc…

ii. Application Environment

CUI (* It doesn’t support)
GUI (It supports Web application only, doesn’t support Desktop applications)

iii. Browsers

Google Chrome
Mozilla Firefox
MS Internet Explorer / MS Edge
Opera
Safari

iv. Programming Languages

Java
Python
C#.Net
Ruby
JavaScript
Kotlin

v. Testing Frameworks

Java – JUnit or TestNG
C#.Net – NUnit
Python- unittest, pyunit, py.test
Ruby – RSpecc, Test::Unit

Note: The Testing Framework Selection depends on the Programming language.

6. Advantages of Selenium (Selenium WebDriver)

i. Selenium is an Open Source Software.

ii. Selenium supports various programming languages (Java, Python, C#, JavaScript, Ruby, and Kotlin) to write Test scripts.

iii. Selenium supports various operating systems (MS Windows, Linux, and Macintosh)

iv. Selenium supports various Browsers (Mozilla Firefox, Google Chrome, IE, Opera, and Safari)

v. Selenium supports Parallel Test Execution.

vi. Selenium WebDriver uses less Hardware resources since it is an API.

vii. Selenium supports Batch Testing, Data Driven Testing, Cross Browser Testing, and Database Testing.

7. Disadvantages of Selenium

i. No reliable Technical Support since it is open-source software.

ii. It doesn’t support Desktop applications.

iii. Difficult to use, takes more time to create Test cases.

iv. Difficult to Setup Test Environment when it compares to Vendor Tools like UFT, RFT, SilkTest etc…

v. Limited support for Image Testing.

vi. New features may not work properly.

vii. No Test Tool integration for Test Management.

viii. No Built-in Reporting facility.

8. Selenium Test Environment

The Selenium Test Environment depends on the selection of programming language, third-party plugins, and frameworks.

First Choose Selenium Tool/s, and third-party plugins & frameworks for testing.

Example: Eclipse IDE, Java, Selenium WebDriver, TestNG, Maven, Jenkins, Extend Reports.

Steps:

i. Download & Install Java (JDK) Software – Write / Create & Run / Execute programs / test cases
(We use programming syntax to write test cases, we use programming features called variables, operators, control flow, methods, exception handling etc, to enhance test cases)

ii. Set Java environment variable path (path variable) – to use Java software from any directory in your machine/computer.

iii. Download Eclipse IDE & Extract – to write Java programs, syntax guidance, context help, auto compilation, and integrate several plug-ins & frameworks with Selenium.

iv Download Selenium WebDriver Java language binding (from www.selenium.dev) and add WebDriver jar file/s to Java project in Eclipse IDE.

v. Download Browser driver/s and set browser path in test cases (instantiate browser driver)

vi. Download & Install ‘TestNG’ plugin for Eclipse IDE.

9. Selenium Test Process

Important Tasks in Selenium Testing:

• Inspect Web/HTML Elements – Using a Browser built-in tools.

• Locating Elements using Element Locators

• Performing Actions on Elements using Selenium WebDriver Methods.

• Creating Object Repositories Using Selenium Page Object Model

• Handle data in Test cases – Using Programming (Ex: Java) Data types and Variables.

• Operators- Programming – Java

• Test Steps Repetitive Execution – Using Programming (Ex: Java) Loop statements.

• Handling Run-time errors in Test cases – Using Programming (Ex: Java) Exception handling code.

• Creating Reusable components – Using Programming (Ex: Java Methods)

• Inserting verification points & Result Reporting – Using Testing Framework (Ex: TestNG) Assert methods.

Steps:

i. Select Manual Test cases for Automation

No restrictions and no limitations for selecting test cases for automation

a. Test cases that can be executed on every software build – Sanity Tests
b. Test cases that can be executed on every modified software build – Regression tests
c. Test cases that can be executed using multiple sets of Test data -Data-driven tests
etc.

ii. Select Selenium Tool/s and other third-party plugins & Frameworks

a. Elipse IDE – As Editor

b. Java as Programming Language

c. Selenium WebDriver as Test Tool – Recognizing HTML/Web Elements in web pages and performing actions on the elements

d. TestNG – Testing Framework – As Test Runner –

e. Maven – Build Automation Tool – Test Environment Setup & Maintenance

f. Jenkins – CI Tool – Integrating Testing Process with Development Process
Etc.

iii. Selenium Test Environment Setup

iv. Writing Selenium Test Cases

Prerequisites for writing Selenium test cases

a. Manual test cases

b. Element Locators for identifying elements in web pages

c. Selenium WebDriver methods to perform operations on the elements

d. Java programming for enhancing Selenium test Cases

e. TestNG for prioritizing test cases, grouping test cases, and inserting verification points.

f. Executing Selenium Test Cases


Selenium Tutorial for Beginners

0. Prerequisites to learn Selenium
1. Selenium Syllabus
Follow me on social media: