What is Selenium? Getting started with Selenium Automation Testing

Last updated on Oct 17,2024 159.7K Views
Vardhan is a technology enthusiast working as a Sr. Research Analyst at... Vardhan is a technology enthusiast working as a Sr. Research Analyst at Edureka. He has expertise in domains like Big data, Cloud computing and...

What is Selenium? Getting started with Selenium Automation Testing

edureka.co

Do you know what is Selenium? Do you have any idea why it is used? If you want the answer to these two questions, then wait until you read the entire content of this blog because you will be glad you spent a worthy amount of time getting an introduction to what could be at the heart of your next job role.

Automation testing is taking the world by storm & Selenium certification course is one of the most sought-after skills in the industry.

Advent of Selenium

Manual testing was tedious and boring for Jason Huggins, an engineer at ThoughtWorks in Chicago. He created JavaScriptTestRunner, a JavaScript program that automates web application testing.

Thoughtworks employees were the first to use the new invention. However, it was renamed Selenium and made open source in 2004. Selenium has been a powerful automation testing tool for testing various web applications across various platforms since its inception.
Let us now learn about Selenium.

What Is Selenium?

Selenium is an open-source tool that is used for automating the tests carried out on web browsers (Web applications are tested using any web browser).

The WebDriver is the core component of Selenium, acting as a bridge between your code and the web browser, allowing you to control the browser and interact with web elements. Selenium works with a variety of browsers, including Chrome, Firefox, Safari, and Edge.Selenium is widely used for quality assurance in the software industry, particularly in web application testing. It has become a standard tool for web developers and testers working on projects.

Wait, before you get carried away, let me re-iterate that, only testing of web applications is possible with Selenium. We can neither test any desktop (software) application nor test any mobile application using Selenium.

It’ a bummer right? I can feel your pain. But don’t worry, there are many tools for testing software and mobile applications like: IBM’s RFT, HP’s QPT, Appium and many more. But, the focus of this blog is, testing dynamic web applications and why Selenium is the best for that purpose.

What are the advantages of Selenium?

Since Selenium is open-source, there is no licensing cost involved, which is a major advantage over other testing tools. Other reasons behind Selenium’s ever growing popularity are:

 

 

Limitations of Selenium Testing

Selenium has a few flaws, which can include:

But there surely has to be shortcomings right?

Before going any further in this what is Selenium blog, you ought to know the story behind how Selenium came into being what it is today. So, let’s understand the scenario in the below order:

    1. Need for software testing
    2. Challenges with manual testing
    3. How automation testing beats manual testing?
    4. Selenium vs. other testing tools?
    5. Selenium suite of tools 

Need For Software Testing

Software testing is where it all boils down to. Today’s world of technology is completely dominated by machines, and their behavior is controlled by the software powering it. Will the machines behave exactly as we want them to? Everytime? Everywhere? The answer to these questions lie in software testing.

At the end of the day, it is the software application’s success rate which is going to control your business growth. The same thing can be said even for web applications because most businesses today are completely reliant on the internet.

Take for example, any e-commerce company. Be it Amazon or E-Bay or Flipkart, they rely on the customer traffic on their web sites and traffic on their web based mobile applications for business.

Imagine, if something catastrophic happens like the prices of a number of products being capped off at 10$, all because of a small bug in a “not so easily readable” part of the code. Then what can be done, and how can we prevent it the next time?

By testing the code before deployment right? So, that is the need for software testing.  But, what is Selenium? Is it a software testing tool? Well, Selenium is an automation testing tool!

Related Article: Software Testing Interview Questions

Before I go any further, let me clear out that, Software testing is of two types: Manual Testing & Automation Testing. Selenium was founded as an automation testing tool to overcome the drawbacks/ limitations of Manual testing. So, in the next section of this what is selenium blog, let’s understand the challenges with manual testing.

Find out our Automation Testing Course in Top Cities/Countries

IndiaUSAOther Cities/Countries
BangaloreNew YorkUK
HyderabadChicagoLondon
PuneDallasCanada
ChennaiAtlantaAustralia
CharlotteSingapore
WashingtonUAE

Challenges With Manual Testing

Manual testing means the (web) application is tested manually by QA testers. Tests need to be performed manually in every environment, using a different data set and the success/ failure rate of every transaction should be recorded.

Look at the above image of a poor chap, who manually verifies the transactions recorded. The challenges he is facing cause fatigue, boredom, delay in work, mistakes and errors because of manual effort. This lead to the invention of  Selenium (automation testing tool). 

Related Article: Manual Testing Interview Questions

Automation Testing Beats Manual Testing

Automation testing beats manual testing every time. Why? Because it is faster, needs less investment in human resource, it is not prone to errors, frequent execution of tests is possible, supports lights out execution, supports regression testing and also functional testing.

Let’s take a similar example to the one mentioned earlier. Suppose there is a login page and we need to verify if all the login attempts are successful, then it will be really easy to write a piece of code which will validate if all the transaction/ login attempts are a success or not (automated test case execution).

Moreover, these tests can be configured in such a way that they are tested in different environments and web browsers. What else can be done? You can automate the generation of result file, by scheduling it for a particular time during the day. Then you can also automate the generation of reports based on those results and what not.

Tips for Selenium Automation Testing:

The key point is that automation testing makes a tester’s job a whole lot simpler. Check out the image below which shows a more relaxed environment in which the same tester is working.

Now, let me talk about Selenium in particular.

Now let us see where Selenium stands in the market.

Selenium vs QTP vs RFT

I have compared its performance with two other popular tools: QTP and RFT in the table below.

FeaturesHP QTPIBM RFTSelenium
LicenseRequiredRequiredOpen-source
CostHighHighOpen-source software
Customer SupportDedicated HP supportDedicated IBM supportOpen-source Community
Hardware consumption during script executionHighHighLow
Coding experienceNot requiredRequiredAmple amount of coding skills and experience needed
Environment supportOnly for WindowsOnly for WindowsWindows, Linux, Solaris OS X (If browser & JVM or JavaScript support exists)
Language SupportVB ScriptJava and C#Java, C#, Ruby, Python, Perl, PHP and JavaScript

It is pretty clear from the above table why Selenium is the most preferred tool. But there are many flavors in Selenium and you should know which is the appropriate right Selenium tool for your need.

Selenium Suite Of Tools

What are the components of Selenium?

Below I have explained each of the components of the Selenium in detail:

Selenium RC (Remote Control)

Before I talk about the details of Selenium RC, I would like to go a step back and talk about the first tool in the Selenium project. Selenium Core was the first tool. But, Selenium Core hit a roadblock in terms of cross-domain testing because of the same-origin policy. The same-origin policy prohibits JavaScript code from accessing web elements that are hosted on a different domain compared to where the JavaScript was launched.

To overcome the same-origin policy issue, testers needed to install local copies of both Selenium Core (a JavaScript program) and the webserver containing the web application being tested so they would belong to the same domain. This lead to the birth of Selenium RC, which is accredited to then ThoughtWork’s engineer, Paul Hammant.

How to Choose the Right Selenium Tool for Your Need

Tool Why Choose?
Selenium IDE
  • To learn about automated testing and Selenium concepts such as type, open, clickAndWait, assert, verify, and so on.
  • Identifiers, names, xpaths, CSS selectors, and so on.
  • Using runScript to execute custom JavaScript code
  • Test cases can be exported in a variety of formats.
  • To write tests with little or no programming experience.
  • To write simple test cases and test suites that can be exported to RC or WebDriver later.
  • Only Firefox and Chrome should be used to test a web application.
Selenium RC
  • To create a test in a language other than Selenese.
  • To run your test against various browsers (except HtmlUnit) and operating systems.
  • Using Selenium Grid, you can deploy your tests across multiple environments.
  • To test your application against a new JavaScript-enabled browser.
  • To put web applications through rigor testing using complex AJAX-based scenarios.
WebDriver
  • To design your test case using a specific programming language.
  • To put AJAX-powered applications through their paces.
  • To run tests using the HtmlUnit browser.
  • To generate personalized test results
Selenium Grid
  • To run Selenium RC scripts in multiple browsers and operating systems at the same time.
  • To run a large test suite that must be completed as soon as possible.

RC overcame the problem by involving an HTTP proxy server to “trick” the browser into believing that Selenium Core and the web application being tested come from the same domain. Thus making RC a two-component tool.

  1. Selenium RC Server
  2. Selenium RC Client – Library containing your programming language code

RC Server communicates using simple HTTP GET/ POST requests. Look at the below image for understanding the RC architecture.

Selenium project’s flagship tool was Selenium RC as it was their first tool and it could be used to write test cases in different programming languages. But the drawback with RC is that every communication with the RC server is time consuming and hence RC is very slow. So slow, that it would sometimes take hours to complete single tests.

From Selenium v3 onwards, RC has been depreciated and moved to legacy package. You can however download and work with RC, but unfortunately you cannot avail support for it. But on the flip side, why would you want to use a tool which is outdated, especially when there is a more efficient tool called Selenium WebDriver. Before I talk about WebDriver, let me discuss about IDE and Grid, which are the other tools that make up Selenium v1.

Related Article: Selenium Interview Questions

Selenium IDE (Integrated Development Environment)

In 2006, Shinya Kastani from Japan had donated his Selenium IDE prototype to Apache’s Selenium project. It was a Firefox plugin for faster creation of test cases. IDE implemented a record and playback model wherein, test cases are created by recording the interactions which the user had with the web browser. These tests can then be played back any number of times.

The advantage with Selenium IDE is that, tests recorded via the plugin can be exported in different programming languages like: Java, Ruby, Python etc. Check out the below screenshot of Firefox’s IDE plugin.

But the associated shortcomings of IDE are:

These were some of the aspects of Selenium IDE. Let me now talk about Selenium Grid.

What is Selenium Grid

Selenium Grid was developed by Patrick Lightbody and initially called HostedQA (initially a part of Selenium v1) and it was used in combination with RC to run tests on remote machines. In fact, with Grid, multiple test scripts can be executed at the same time on multiple machines.

Parallel execution is achieved with the help of Hub-Node architecture. One machine will assume the role of Hub and the others will be the Nodes. Hub controls the test scripts running on various browsers inside various operating systems. Test scripts being executed on different Nodes can be written in different programming languages.

Grid is still in use and works with both WebDriver and RC. However, maintaining a grid with all required browsers and operating systems is a challenge. For this, there are multiple online platforms that provide an online Selenium Grid that you can access to run your selenium automation scripts. For example, you can use LambdaTest. It has more than 2000 browser environments over which you can run your tests and truly automate cross-browser testing.

Related Learning: Selenium 4 Features

What is Selenium WebDriver

Founded by Simon Stewart in 2006, Selenium WebDriver was the first cross-platform testing framework that could control the browser from OS level. In contrast to IDE, Selenium WebDriver provides a programming interface to create and execute test cases. Test cases are written such that, web elements on web pages are identified and then actions are performed on those elements.

WebDriver is an upgrade to RC because it is much faster. It is faster because it makes direct calls to the browser. RC on the other hand needs an RC server to interact with the web browser. Each browser has its own driver on which the application runs. The different WebDrivers are:

Benefits Of Selenium WebDriver

Learn how to handle multiple windows in Selenium here.

Short-comings Of Selenium WebDriver

No matter the challenge, these shortcomings can be overcome by integrations with other frameworks. For testing images, Sikuli can be used, and for generating detailed test reports, TestNG can be used.

Find out our Selenium Training in Top Cities/Countries

IndiaOther Cities/Countries
BangaloreUS
HyderabadUK
PuneCanada
ChennaiAustralia
MumbaiSingapore
KolkataEdinburgh

So that draws the conclusion to this blog on what Selenium is. To learn more about Selenium WebDriver and TestNG, read the other blogs in this Selenium tutorial blog series. You can alternatively see the video below delivered by an industry expert where she has shared her opinion of Selenium as an automation testing tool.

What Is Selenium? | Selenium Tutorial | Selenium Training | Edureka

 

This ‘what is selenium’ blog is the first in the Selenium tutorial blog series. Stay tuned to Edureka’s blog site for more blogs on Selenium. 

For details, You can even check out in-depth knowledge of various functionalities of JMeter which are used to evaluate the performance of the application with the Performance testing course.

If you wish to learn Selenium and build a career in the testing domain, then check out our interactive, live-online Selenium Training in, which comes with 24*7 support to guide you throughout your learning period.

Got a question for us? Please mention it in the comments section of this What is Selenium article and we will get back to you or join our course today.

Upcoming Batches For Selenium Course
Course NameDateDetails
Selenium Course

Class Starts on 23rd November,2024

23rd November

SAT&SUN (Weekend Batch)
View Details
Selenium Course

Class Starts on 25th November,2024

25th November

MON-FRI (Weekday Batch)
View Details
Selenium Course

Class Starts on 21st December,2024

21st December

SAT&SUN (Weekend Batch)
View Details
BROWSE COURSES
REGISTER FOR FREE WEBINAR Selenium Framework Explained in 60 Minutes