Introduction to Selenium Test Automation Tool in detail
Selenium in simple terms is a Test Automation Tool.
As part of this detailed introduction of Selenium, the following are the different topics on Selenium that I am going to explain in this article:
- What is Selenium?
- What are the pre-requisites that are required for learning Selenium?
- What are the different components or tools of Selenium?
- Selenium is an Open Source and Free Test Automation Tool
- What types of Applications that Selenium can and cannot Automate?
- What are the different browsers supported by Selenium?
- What are the different programming languages supported by Selenium?
- What are the different operating systems supported by Selenium?
- What is SeleniumHQ?
- What are the different versions of Selenium?
- What is the History of Selenium?
- How Selenium got its name?
- What types of Testing can be automated using Selenium?
- 15 advantages or benefits of using Selenium
- 20 disadvantages or limitations of using Selenium and the list of scenarios that Selenium cannot automate
What is Selenium?
Selenium in simple terms is a Test Automation Tool.
Pre-requisites required for understanding or before learning Selenium:
Before understanding Selenium, you need to first understand all the pre-requisites that are required for learning Selenium from the below links:
What is Selenium?
Selenium in simple terms is a Test Automation Tool. In order to understand Selenium Test Automation tool in a better way, we have to first understand the difference between Manual and Automation Testing.
Difference between Manual and Automation Testing?
- > In Manual Testing, a person having role as a Tester will be sitting before the computer to check whether the application functionality is working as expected.
- > In Automation Testing, we will be using Automation Tools to perform the Testing.
- > Hence in Manual Testing, a person will be performing the testing instead of tools and where as in Automation Testing, a tool will be performing testing with an intention of saving testing time of a tester.
How can an Automation Tool perform Testing?
- > Step#1: Testers/Automation engineers will create the automation code using any Selenium supported language say Java and put the developed code into the Automation tool like Selenium
- > Step#2: Automation Tool like Selenium will execute the automation code developed by Testers/Automation Engineers to test the applications functionality.
Selenium is a Test Automation Tool, using which we can create and execute the automation scenarios with an intention of testing the application functionality by saving the time of a tester.
Watch this video on ‘What is Selenium?’ for more clarity:
Prerequisites required for learning Selenium
Prerequisites required for learning Selenium can be categorized into the following two types:
- > Basic Pre-requisites required for learning Selenium
- > Other Pre-requisites required for learning advanced concepts of Selenium
Basic Prerequisites required for learning Selenium:
The following are the mandatory prerequisites that are required for learning Selenium:
- > Software Testing Basics
- > Automation Testing Basics
- > HTML Basics
- > HTML Basics will help you in understand the locators concepts better
- > Learn HTML Basics
- > Locators
- > Locators will help Selenium in identifying or locating the UI elements like buttons etc on the web pages
- > Locators concepts will be explained in detailed in the upcoming blog posts
- > Core Java
- > Core Java programming concepts form the backbone for learning Selenium
- > Its recommend to start learning Selenium using Core Java, even though there are many programming languages that are support Selenium
- > Selenium with Java has good support over the web and can easily learn it as you can find all the solutions for any problems you face over web while learning Selenium
- > Core Java programming concepts will be explained in detailed in the upcoming blog posts
- > Eclipse IDE
- > Eclipse IDE is the most used editor for creating and executing the Selenium and Java code
Other Prerequisites that are required for learning advanced concepts of Selenium:
Apart from the above said mandatory pre-requisites, we can also learn the below pre-requisites for understanding the advanced concepts of Selenium on the need basis. You don’t have to learn any of these below before learning Selenium.
- > JavaScript Basics
- > DOM (Document Object Model) Basics
- > SQL Basics
- > CSS
- > XPATH
- > XML
- > JSON
What this video on ‘What are the prerequisites required for learning Selenium?’ for more clarity:
What are the different components or tools of Selenium?
Selenium is not a single tool, instead it is a combination of the following four different components / tools:
- > Selenium IDE
- > Selenium RC
- > Selenium WebDriver
- > Selenium Grid
More about the different components of Selenium:
- > Selenium IDE (Latest version is available)
- – Selenium IDE is a record and playback tool
- – It records the tests like recording a video and playbacks/execute the recorded tests like playing the recorded video
- > Selenium RC (Outdated)
- – Selenium RC is just a set of commands or predefined methods using which we can develop Selenium Automation scripts using various supported programming languages like Java, C#, Python, Ruby and others
- – Selenium RC is now outdated & deprecated and got completely replaced by Selenium WebDriver
- > Selenium WebDriver (Major component)
- – Selenium WebDriver is just a set of commands or predefined methods using which we can develop Selenium Automation scripts using various supported programming languages like Java, C#, Python, Ruby and others
- – Selenium WebDriver is currently popular in the market and is the major component of Selenium
- > Selenium Grid
- – Selenium Grid is a concept or set of configurations, using which we can distribute the multiple tests across multiple machines having different operating systems and browser types.
Note:
- > All the above Selenium components or tools mentioned will be covered in a step by step manner in the upcoming posts.
Watch this video on “What are the different component or tools of Selenium?” for more clarity:
Selenium is an Open Source and Free Test Automation Tool
Selenium is an Open Source and Free Test Automation Tool for automating the Web Applications.
In-order to understand the above line, we have to understand the terms “Open Source” and “Free”, which are explained below:
What is an Open Source Software or Tool?
The following points will help you in understanding what an Open Source Software or Tool means:
- > Creators of Open Source Software or Tool makes its code open for others by giving them permissions to use their source code for any of the below purposes
- > Permissions to study the source code
- > Permissions to change the source code
- > Permissions to distribute the Software and its code to others for any purposes
- > Examples for Open Source Software other than Selenium
- > Firefox Browser is an open source software
- > Mozilla company is contributing to this open source software
What is a Free Software or Tool?
The following points will help you in understanding what a Free Software or Tool means:
- > Free Software has zero licensing cost for using the Software
- > Example for Free Software other than Selenium
- > Firefox Browser is a free software with zero licensing cost for using it
- > Where as proprietary software has different licensing models and cost for using their Software
- > Example for Proprietary Software
- > Microsoft Windows, UFT/QTP, Test Complete etc.
Watch this video on “Selenium is an Open Source and Free Test Automation Tool” for more clarity:
Hence Selenium is both an Open Source and Free Software. Apart from being powerful, Selenium is also Free and hence it is being used by many for automating these Web Applications at free of cost.
Types of Applications that Selenium can and cannot Automate:
Before understanding what types of Applications that Selenium can and cannot automate, we have to first understand the different types of applications first:
Different types of Applications:
The following are the three major types of applications:
- > Web Applications
- > Mobile Applications
- > Desktop Applications
Types of Applications that Selenium can Automate:
- > Selenium can only Automate Web Applications
Types of Applications that Selenium cannot Automate:
- > Mobile Applications cannot be Automated with Selenium
- > For Automating the Mobile Applications, we have to use the specific and popular tools like Appium etc.
- > Desktop Applications cannot be Automated with Selenium
- > For Automating the Desktop Applications, we have to use the specific and popular tools like UFT/QTP, Test Complete etc.
- > We can also use a free took known as Winnium Automation tool, which is a wrapper over Selenium, using which we can automate the Windows based Desktop Applications.
Watch this video on “What types of Applications that Selenium can and cannot Automate?” for more clarity:
Hence Selenium can Automate Web Applications. Selenium cannot Automate Desktop and Mobile Applications. We have to use other different tools for automating the Desktop and Mobile Applications
Different Browser Supported By Selenium
As Selenium RC is deprecated and Selenium Grid is just a set of configurations, I will explain the different browsers supported for the below Selenium components only:
- > Selenium IDE
- > Selenium WebDriver
Different Browsers Supported by Selenium IDE:
Latest version of Selenium IDE got released into the market by Selenium guys in the Aug 2018 and it supports the following two browsers:
- > Firefox Browser
- > Chrome Browser
So, latest version of Selenium IDE can be installed on both Firefox Browser and Chrome Browser
Where as the older version of Selenium IDE used to support only the below browser:
- > Firefox Browser
Different Browsers Supported by Selenium WebDriver:
Selenium WebDriver supports all the below mentioned famous browsers in the market:
- > Firefox Browser
- > Chrome Browser
- > Internet Explorer Browser
- > Safari Browser
- > Edge Browser
- > Opera Browser
Watch this video on “What are the different browsers supported by Selenium?” for more clarity:
Hence Latest version of Selenium IDE supports both Firefox and Chrome Browsers. Older version of Selenium IDE used to support Firefox Browser. Selenium WebDriver supports Firefox, Chrome, Internet Explorer, Safari, Edge and Opera Browsers
Different Programming Languages Supported by Selenium
As Selenium IDE is a record and playback tool, Selenium RC is deprecated and Selenium Grid is just a set of configurations, I will only explain the different programming languages supported for the below Selenium component:
- > Selenium WebDriver
Different Programming Languages Supported by Selenium WebDriver:
Selenium WebDriver supports all the below mentioned programming languages in the market:
- > Java
- > Python
- > C#
- > Ruby
- > JavaScript
- > Perl
- > PHP
- > R
- > Objective-C
- > Haskell
How to choose a Programming Language for Selenium Automation Project?
The following are few points you have to understand while selecting a programming language for your Selenium Automation Project:
- > Selenium Automation scripts written on a programming language say Java, can be executed on the Web Applications developed using different languages like C#, Ruby, Python etc.
- > Your company or Client may decide on the programming language to be selected for creating the Selenium Automation scripts, based on the language they are comfortable with or feel beneficial with.
Java is the best programming language to start learning Selenium
The following are the points, which will help us in understanding why Java is the best programming language to start learning Selenium:
- > From the beginning days, most of the projects in the market are on Selenium Java
- > Almost all of the questions or problems faced in Selenium automation are answered on the web using Java
- > Most of the Selenium blogs, trainings and youtube videos etc. on the web are on Java
- > Java is the preferred language for asking questions in Selenium Interviews
- > Java gives you good confidence in learning Selenium and once you are confident, you can switch to any other programming language for Selenium on your need basis.
Most demand programming languages for Selenium in the market:
The following are the five programming languages that have very good demand in the market for Selenium Automation:
- > Java
- > Python
- > C#
- > Ruby
- > JavaScript
Watch this video on ‘What are the different programming languages supported by Selenium?’ for more clarity:
Hence Selenium WebDriver supports various programming languages like Java, Python, C#, Ruby, Perl, PHP, JavaScript, R, Objective-C and Haskell. Java is the best language to start learning Selenium Languages that are in demand for automating Selenium are Java, Python, C#, Ruby and JavaScript
Different Operating Systems supported by Selenium
As Selenium RC is deprecated and Selenium Grid is just a set of configurations, I will explain the different operating systems supported by the below Selenium Components only:
- > Selenium IDE
- > Selenium WebDriver
Different Operating Systems supported by Selenium
At a high level the following are the major and different Operating Systems supported by Selenium:
- > Microsoft Windows
- > Most versions of Microsoft Windows that are being used in the market now, are supported by Selenium
- > Mac
- > Current stable version and previous releases of Mac OS X are supported by Selenium
- > Linux
- > Linux OS flavors like Ubuntu and others are supported by Selenium
Operating Systems supported by Selenium IDE
Latest version of Selenium IDE runs on the Chrome and Firefox Browsers of the below mentioned Operating Systems:
- > Microsoft Windows
- > Mac OS X
- > Linux
- > Solaris
- > Other operating systems which support Firefox and Chrome Browsers
Operating Systems supported by Selenium WebDriver
Selenium WebDriver works on the below different Operating Systems:
- > Microsoft Windows
- > Mac OS X
- > Linux
Watch this video on “What are the different Operating Systems supported by Selenium?:” for more clarity:
Hence, Selenium at a high level is supported by the following different Operating Systems:
- > Microsoft Windows
- > Mac OS X
- > Linux
What is SeleniumHQ?
SeleniumHQ (www.seleniumhq.org) is the official website of Selenium.
Overview of SeleniumHQ (Official Website of Selenium)
- > Information related to different Components of Selenium
- > Downloading Selenium components and related stuff (Includes latest and older versions)
- > Documentation on different topics related to Selenium component and Automation concepts
- > Getting support from Selenium Group and Chat
- > Reporting issues related to Selenium
- > Official blog, Events and News on Selenium
- > Selenium Sponsorship and Sponsors related information
- > Contribution to Selenium Open Source initiative by contributing to the code, testing the code, documenting the details in the website etc.
Different Pages on SeleniumHQ Website:
The following are the different pages on SeleniumHQ website:
- > Projects Page
- > Where the information related to different Selenium Components will be available
- > Download Page
- > Where we can download Selenium and other different things related to Selenium
- > Documentation Page
- > Documentation provided by Selenium Guys on different topics related to Selenium and Automation will be available
- > Support Page
- > Join Selenium User Group
- > To discuss different things on Selenium
- > Selenium Chat Room
- > To ask any questions on Selenium
- > Selenium Bug Tracker
- > Report the issues related to Selenium tools here
- > Sponsors of Selenium
- > Find the information related to different sponsors who are funding Selenium
- > About Page
- > Selenium Blog
- > Selenium Events
- > Selenium News
- > Other options to sponsor or contribute to Selenium
- > Join Selenium User Group
Walk-through of SeleniumHQ Website is available in the below video:
Important URL addresses on SeleniumHQ Website:
- > Landing Page: https://www.seleniumhq.org/
- > Downloads Page: https://www.seleniumhq.org/download/
- > Documentation Page: https://www.seleniumhq.org/docs/
- > Selenium WebDriver Page: https://www.seleniumhq.org/projects/webdriver/
- > Selenium Grid Page: https://www.seleniumhq.org/projects/grid/
- > Selenium IDE Page: https://www.seleniumhq.org/selenium-ide/
- > Selenium Remote Control Page: https://www.seleniumhq.org/projects/remote-control/
- > Selenium Support Page: https://www.seleniumhq.org/support/
- > Selenium Blog, News, Events Page: https://www.seleniumhq.org/about/
Hence, SeleniumHQ (www.seleniumhq.org) is the official website of Selenium
Different Versions of Selenium
The following are the different versions of Selenium:
- > Selenium 1
- > Selenium 2
- > Selenium 3
What is Selenium 1?
- > Selenium 1 = Selenium IDE + Selenium RC + Selenium Grid
- > First and oldest version of Selenium
- > Selenium 1 got released into the market in 2006
What is Selenium 2?
- > Selenium 2 = Selenium IDE + Selenium WebDriver 2.x + Selenium RC + Selenium Grid
- > Selenium 2 got released into the market in 2011
What is Selenium 3?
- > Selenium 3 = Selenium IDE + Selenium WebDriver 3.x + Selenium Grid
- > Latest version of Selenium as of today
- > Removed the support for Selenium RC scripts
- > Selenium 3 got released into the market in 2016
What is Selenium 4?
- > Yet to be released into the market
Watch this video “What are the different versions of Selenium?” for more clarity:
Hence, the following are the different versions of Selenium that got released into the market so far:
- > Selenium 1
- > Selenium 2
- > Selenium 3
- > Selenium 4 is yet to be released into the market
The History of Selenium
The following is the wonderful history of Selenium.
Origin of Selenium Core
Once upon a time, in the year 2004, there was a guy named Jason Huggins.
He used to work for ThougtWorks company at Chicago.
He used to repeatedly verify the Time and Expenses application, he was working on an ongoing basis.
He got an idea and developed “JavaScriptTestRunner” to automate the verification work that need to be repeatedly performed on a daily or change basis.
He started giving demos to huge audience and soon it let to the discussions to make this tool an open source one for the benefit of automating other such web applications.
“JavaScriptTestRunner” was later named as “Selenium Core” and released into the market as an Open Source tool.
This Open Source tool started gaining demand in the market and people started using it for automating the repeated tasks in their Web Applications.
The “Same Origin Policy” Issue
Earlier the external or third party JavaScript programs were able to access or do modifications to the Web Applications.
When the web applications started advancing and their complexity got increased, the same has increased the concern for their security measures.
The Web Applications started restricting the External JavaScript program from accessing their internal technicalities of their applications by considering them as a security breach, which is called as “Same Origin Policy”
“JavaScriptTestRunner” alias “Selenium Core” is nothing but a third party or External JavaScript programs, which can access different Web Applications with an intention of automating the repeated verification tasks of an Application
The “Same Origin Policy” followed by different web applications as a security measure, has become an issue for the “Selenium Core” and was started restricting from accessing the Web Applications.
In Simple terms, “Same Origin Policy” is nothing but a JavaScript program of an X domain cannot access the pages hosted at a different domain say Y domain.
To overcome this problem, testers used to install both Selenium Core (JavaScript program) and Web Application code under test (Web Server) in the same domain and then automate the required tests.
Here comes Selenium RC (Selenium Remote Control)
Due to “Same Origin Policy” issue, it was becoming difficult for the testing team, in installing the Selenium Core (JavaScript Program) and Web Application code (Web Server) in their local machines, when ever they want to automate their tests.
There came another guy named “Paul Hammant”, who came up with an idea of creating a Proxy Server to trick the browser in believing that Selenium Core (JavaScript Program) and Web Application code (Web Server) belong to the same domain, even though they are not.
As this trick was working and adapted by many, the Proxy Server that is used to trick the browser in believing that everything is from the same domain was named as “Selenium RC” (Selenium Remote Control)
Here comes Selenium Grid
The execution of the Automated Tests used to take a good amount of time when there are a large number of tests to be executed in the project.
To overcome this problem and minimize the test execution time, a guy named “Patrick Lightbody” came up with a system known as “Hosted QA”, which was later renamed as “Selenium Grid”.
Using “Selenium Grid”, testers were able to distribute the tests across multiple machines and get them executed them on different machines over their network to reduce or minimize the time taken for overall execution of tests.
Here comes Selenium IDE
The creation of Automation tests used to take a good amount of time using Selenium RC.
To overcome this problem and increase the speed of automation tests creation, there came a guy from Japan named “Shinya Kasatani”, who developed a Firefox extension named as “Selenium IDE”.
“Selenium IDE” using its record and playback feature, records the automation tests like recording a video and executes the recorded tests like playing the recorded videos.
Here come Selenium WebDriver
Before Selenium WebDriver came into picture, there used to be Selenium 1
Selenium 1 used to be the major project of Selenium.
Selenium 1 = Selenium IDE + Selenium RC + Selenium Grid
Due to the “Same Origin Policy”, the external or third party JavaScript programs like “Selenium Core” were restricted by the Web Applications and the only alternative way was to trick the browser using Proxy Servers like “Selenium RC”.
To overcome this problems, a guy named “Simon Stewart” has come up with the first cross platform testing framework that can control the browsers directly from the OS level of the local machines of the testers.
The cross platform testing framework was named as “Selenium WebDriver”.
“Selenium WebDriver” talks to different browsers without using any tricks.
Here comes Selenium 2
Selenium Team has decided to merge both Selenium WebDriver and Selenium RC to form a more powerful Selenium tool.
They both got merged to form “Selenium 2”
“Selenium WebDriver” was the core of “Selenium 2” and “Selenium RC” used to run in maintenance mode.
Hence Selenium 2 = Selenium IDE + Selenium WebDriver 2.x + Selenium Grid
Here comes Selenium 3
Selenium team has decided to completely remove the dependency for Selenium RC.
Selenium WebDriver was taken to the next level where the dependency of Selenium RC can be completely removed.
Finally Selenium Team has achieved it and released a latest version of Selenium known as Selenium 3.
Hence Selenium 3 = Selenium IDE + Selenium WebDriver 3.x + Selenium Grid
New Selenium IDE
Selenium team has deprecated the older version of Selenium IDE on August 2018 and in place of that released a new version of Selenium IDE into the market.
The latest version of Selenium IDE works on both Firefox and Chrome Browsers.
Looking for the future
Selenium Team has announced of releasing new Selenium version i.e. Selenium 4, but it has not released it yet.
Watch this video on “The History of Selenium” for more clarity:
How Selenium got its Name?
Jason Huggins, the creator of Selenium’s first product ‘Selenium Core’ has coined this Selenium name first.
One day, Jason Huggins made a joke in a mail on competitor company name – Mercury Interactive.
Mercury Interactive was later acquired by HP company and their product got renamed to QTP followed by UFT.
Here is the joke in the mail – “Mercury poisoning can be cured by taking Selenium Supplement“.
The others who received this email, decided to name it as Selenium.
This is how Selenium got its name ?
Watch this video on “How Selenium got its name?” for more clarity:
Types of Testing that can be automated using Selenium
The following are the different testing types that can be automated using Selenium:
- > Functional Testing
- > Functional Testing is performed to test whether the Software application is functioning according to the specified business requirement specifications
- > Selenium Automates the functional tests mainly at the UI layer of the Web Application under test.
- > The following Functional Testing types can be automated using Selenium
- > Smoke Testing – Testing whether major or critical functionalities of the application are working fine before accepting the build
- > Sanity Testing – Testing whether the changed or fixed functionalities of the application are working fine by testing them in depth
- > UI Testing – Testing the Graphical User Interface elements on the application like buttons, check-box options, menus, text alignments etc. are displayed properly
- > Database Testing – Testing whether the data displayed and updated on the UI of the application is in sync with the data stored in the database of the application
- > Cross Browser Testing – Testing whether the Application is working in all its supported browsers
- > Regression Testing – Testing whether no side effects are introduced into the working and stable functionalities of the application, when the code changes or fixes or new additions are done on the application.
Regression Testing (Main Testing Type for automation)
- > Regression Testing ensures any enhancements or bug fixes or new additions in the software code, has not introduced any side effects into the previously working functionalities of the software.
- > The main purpose of automation is to automate all these stable regression testing scenarios, which can’t be covered manually every time the application functionality changes.
What types of testing cannot be automated using Selenium?
The following are the different types of testing that cannot be automated using Selenium:
- > Selenium is not the tool for performing API testing, instead we have to use other automation tools like Rest Assured Framework etc.
- > Selenium is not the tool for performing Mobile Testing, instead we have to use other automation tools like Appium etc.
- > Other limitations of Selenium tool will be explained in the upcoming tutorial topics.
Watch this video on ‘What types of testing can be automated using Selenium?” for more clarity:
Hence, Selenium can automate Functional Testing and Regression Testing types.
15 Advantages or Benefits of using Selenium Automation Tool
The following are the different advantages or benefits of using Selenium Test Automation Tool:
- > Selenium is an Open Source tool released under Apache 2.0 license
- > Know more details about Open Source at http://www.qafox.com/selenium-is-open-source-and-free/
- > Know more details about Selenium License details at https://www.seleniumhq.org/about/license.jsp
- > Selenium is Free and has 0 license cost
- > Selenium is most widely used Test Automation tool for Web Applications
- > Selenium supports multiple programming languages like Java, Python, C#, Ruby, JavaScript, Perl, PHP, Objective-C, R and Haskell programming languages
- > Selenium supports multiple operating systems like Windows, Mac and Linux operating systems
- > Selenium supports multiple browsers like Firefox, Chrome, Internet Explorer, Safari, Opera and Edge Browsers
- > Selenium has very good community support with constant updates and upgrades, despite of being open source
- > Selenium has a record and playback tool known as Selenium IDE, which records the tests on the fly in very less time like recording a video and execute the tests like playing the recorded videos.
- > Selenium has a tool known as Selenium Grid, which reduces the overall test execution time by distributing the tests across multiple machines for simultaneous execution of tests in multiple machines
- > Selenium supports Parallel Test Execution
- > Selenium can execute the tests in headless mode
- > Selenium uses less hardware resources compared to other test automation tools like QTP/UFT, TestComplete etc.
- > Selenium gives freedom of choice in integrating with the following
- > Reporting tools (Extent Reports, Allure Reports etc.)
- > Build tools (ANT, Maven, Gradle etc.)
- > Unit Testing Frameworks (TestNG, JUnit etc.)
- > Continuous Integration Tools (Jenkins, Hudson, Bamboo etc. )
- > Other Open Source Tools (AutoIt, Sikuli etc.)
- > API’s (POI API, JXL, Log4j etc.)
- > Cloud Grids (SauceLabs, CrossBrowserTesting, Gridlastic etc.)
- > Test Management Tools (TestRail, Zephyr etc.)
- > Selenium Supports multiple Test Automation Frameworks and Design Patterns
- > Data Driven Framework
- > Keyword Driven Framework
- > Hybrid Framework
- > Page Object Model and Page Factory Design Patterns
- > BDD Framework
- > Linear Framework
- > Modular Framework
- > And others
- > There are automation tools which are built on Selenium API
- > NightWatch.js
- > WebDriverIO
- > WebDriverJS
- > Protractor
- > Serenity
- > And many more
Watch this video on “15 Advantages or Benefits of using Selenium Automation Tool” for more clarity:
20 Disadvantages or limitations of using Selenium
The following are the disadvantages or limitations of using Selenium:
Note: The below list also includes the scenarios that Selenium cannot automate apart from the disadvantages or limitations of Selenium.
- > Selenium cannot automate desktop applications
- > We have tools like QTP/UFT, TestComplete, Winnium etc. to perform the automation testing of Desktop Applications
- > Selenium cannot automate mobile applications
- > Appium is the best tool for automating the mobile applications
- > Selenium is not the tool for automating Web Services like Soap or Rest
- > We have dedicated tools like Rest Assured Framework, Apache HTTP Client, SoapUI, PostMan etc. to automate them
- > Can be automated using Selenium up to some limit
- > Selenium requires technical skills to automate the tests
- > Test engineers should be good at any of the programming languages like Java, Python, C#, Ruby, JavaScript etc. to create effective automation tests.
- > Selenium doesn’t have built-in Object Repository for maintaining objects at a centralized location
- > Tools like QTP/UFT etc. have this feature.
- > Selenium doesn’t have any reporting capability by default
- > Selenium has to integrate with TestNG, Extent Reports etc. to get the reporting feature
- > Selenium doesn’t have the capability to test using the images by default
- > Selenium integrate with tools like Sikuli to perform Image Based Testing
- > Selenium cannot handle Window Based pop-ups which appear while working with the Web Application functionalities like Upload File etc.
- > Selenium integrates with tools like AutoIt to handle such Window Based pop-ups
- > Selenium cannot automate Captcha
- > The purpose of Captcha is to separate robots from humans.
- > The best way to test them is to ask the development team to disable them or make them static
- > Selenium cannot automate Bar codes or QR codes
- > The purpose of Bar codes or QR codes is to uniquely identify something
- > Selenium cannot automate OTP
- > The purpose of OTP is for security authentication reasons
- > Selenium cannot automate Video Streaming
- > Selenium won’t identify video controls
- > Selenium can’t test the content that is playing inside the video
- > Selenium cannot automate audio clips
- > Selenium can’t test the content that is played in audio clips
- > Selenium doesn’t have its own IDE for creating or executing scripts
- > Selenium needs other IDEs available in the market like Eclipse IDE, IntelliJ etc.
- > Where as other tools like QTP/UFT, Test Complete etc. have their own IDEs for creating and executing automation scripts
- > As Selenium is an Open Source and free tool, there is no vendor or official support
- > In case of tools like QTP/UFT, HP company provides the official support
- > In case of Selenium, there are numerous helping communities though
- > Creating test environments or test scripts in Selenium takes time
- > In Selenium, we have to configure everything on our own
- > Tools like QTP/UFT, Test Complete etc., have inbuilt features to create everything
- > No default tools for Test Management is available in the Selenium Suite of tools
- > In case of QTP/UFT, we have QC/ALM tool from the same HP family
- > For Selenium, we have to integrate with other Test Management tools available in the market
- > Selenium is the not the effective solution to automate Performance Testing
- > Thought performance testing can be automated using Selenium, its not an effective solution
- > There are specific tools like JMeter, LoadRunner etc. which are effective in performance testing
- > Selenium is not the effective solution to automate Security Testing
- > Though Security Testing can be automated to some extent using Selenium, its not an effective solution
- > There are specific tools like BurpSuite etc. which are effective in Security Testing
- > Selenium cannot automate Chat Bots
- > There are separate tools like Botium etc. to automate chat bots.
- > Other things that cannot be automated using Selenium
- > Real life scenarios like swiping a card, printing, scanning etc.
Watch this video on “20 Disadvantages or limitations of using Selenium Automation Tool” for more clarity:
Finally, we reached the end of this topic.
Hope, you learned a lot as part of this introduction topic of Selenium.
Please leave your questions/comments/feedback below.
Happy Learning ?
On a mission to contribute to the Software Testing Community in all possible ways.