Selenium

What is Selenium? Introduction to Selenium Automation Testing

Selenium is a free (open-source) automated testing framework used to assess web applications across different browsers and platforms. You can use many programming languages like Java, C#, Python etc to construct Selenium Test Scripts. Selenium testing is a term used to describe testing that is performed using the Selenium testing tool.

Selenium Tools is not just a single tool but a suite of software, each piece catering to distinct Selenium QA testing demands of an enterprise. Here is the list of tools

Who developed Selenium?

Due to the fact that Selenium is a collection of diverse technologies, it has had a variety of developers. The following are some of the important individuals who made significant contributions to the Selenium Project.

The Same Origin Policy Issue

Jason Huggins invented Selenium in 2004, and it has been in use ever since. He was an engineer at ThoughtWorks, and he was working on a web application that needed to be tested frequently. He designed a JavaScript programme to manage the operations of the browser after seeing that the repetitive Manual Testing of their application was getting increasingly inefficient. This application was given the name “JavaScriptTestRunner” by the author.

Seeing the potential in this idea to assist in the automation of other web applications, he released JavaScriptRunner open-source, which was eventually renamed as Selenium Core, in order to share it with the world.

Birth of Selenium Remote Control (Selenium RC)

In accordance with the Same Origin principle, JavaScript code is prohibited from accessing elements in a domain other than the one from which it was launched. For instance, the HTML code of www.google.com makes use of the JavaScript programme “randomScript.js.” Because of this origin policy, randomScript.js will only be able to access pages that are hosted on google.com, such as google.com/mail or google.com/login or google.com/signup. Although it can access pages from different sites, such as yahoo.com/search or guru99.com, it is unable to view pages from other domains.

Birth of Selenium Grid

Consequently, prior to Selenium RC, testers had to install local copies of both Selenium Core (a JavaScript programme) and the web server holding the web application being tested in order for both to be considered members of the same domain. Selenium RC eliminates this need.

Selenium remote control was invented around this time (Selenium RC)

Birth of WebDriver

Unfortunately, because of the limits imposed by the same origin policy, testers using Selenium Core were forced to install the entire application under test as well as the web server on their own local PCs. As a result, another ThoughtWork’s engineer, Paul Hammant, decided to develop a server that will operate as an HTTP proxy in order to “fool” the browser into believing that Selenium Core and the web application under test are both hosted on the same server. The Selenium Remote Control, sometimes known as the Selenium 1, was the name given to this system.

Birth of WebDriver

Selenium Grid was created by Patrick Lightbody in order to satisfy the requirement of reducing test execution times to the greatest extent achievable. Initially, he referred to the system as “Hosted QA.” Selenium commands could be sent to several workstations concurrently, and it was capable of collecting screenshots of the browser during critical phases.

Birth of Selenium 2

Selenium IDE, developed by Shinya Kasatani of Japan, is a Firefox extension that allows you to automate the browser through the use of a record-and-playback capability. He came up with this idea in order to speed up the process of building test cases even further. In 2006, he made a donation to the Selenium Project in the form of the Selenium IDE.

The beginning of WebDriver

Simon Stewart created WebDriver circa 2006 when browsers and web applications were becoming more powerful and more restrictive with JavaScript programmes like Selenium Core. It was the first cross-platform testing framework that could control the browser from the OS level.

Selenium 2 was created at the beginning of time.

In 2008, the whole Selenium Team decided to merge WebDriver and Selenium RC to form a more powerful tool called Selenium 2, with WebDriver being the core. Currently, Selenium RC is still being developed but just in maintenance mode. The majority of the Selenium Project’s efforts are now concentrated on the development of Selenium 2.

So, Why the Name Selenium?

The name Selenium was inspired by a joke that Jason told to his team at some point. During the development of Selenium, another automated testing framework developed by a firm called Mercury Interactive became very popular (yes, the company who originally made QTP before it was acquired by HP). Because Selenium is a well-known remedy for Mercury toxicity, Jason proposed the name Selenium, which his coworkers agreed to use. As a result, we have been referring to this framework as such up until the present.

Brief Introduction Selenium IDE

When it comes to the Selenium suite of frameworks, the Selenium Integrated Development Environment (IDE) is the simplest and most straightforward to understand. It is a Firefox plugin that can be installed in the same way that other plugins can be installed. Selenium IDE, on the other hand, should only be used as a prototyping tool because to its inherent simplicity. For more complex test cases, you will need to utilise either Selenium RC or WebDriver, which are both available for free.

Brief Introduction Selenium Remote Control (Selenium RC)

Introduction in a few words Selenium Remote Control (also known as Selenium Remote Control) (Selenium RC)

For a long time, Selenium RC served as the primary testing framework for the whole Selenium development project. For the first time, an automated online testing tool gave customers the option of using a programming language of their choosing. According to the latest RC release (2.25.0), RC can support the following programming languages:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

Selenium Grid

Introduction in a few words WebDriver

The WebDriver appears to be superior to both the Selenium IDE and the Selenium RC in a variety of ways. It takes a more current and stable method to automating the browser’s actions than previous versions. Instead of using JavaScript for Selenium Automation Testing, WebDriver, unlike Selenium RC, uses a different approach. It exerts influence over the browser by communicating with it directly.

The languages that are supported are the same as those that are supported by Selenium RC.

Parallel tests can be done across several machines and multiple browsers at the same time using the Selenium Grid tool in conjunction with Selenium RC, which is a component of the Selenium framework. Parallel execution refers to the process of performing many tests at the same time.

Features:

Allows for the execution of tests in many browsers and environments at the same time.

Saves a significant amount of time.

It makes use of the hub-and-node paradigm. It serves as a central source of Selenium commands for all of the nodes that are connected to it.

Note on Browser and Environment Support

The Selenium IDE, Selenium RC, and WebDriver each support a varied set of browsers and operating systems, which is due to the variances in their architectural designs.

WebDriver for Selenium in the IDE

Mozilla Firefox is supported as a browser.

Internet Explorer versions 6 to 11, both 32 and 64-bit

Microsoft Edge versions 12.10240 and higher are supported ( partial support some functionalities under development)

Firefox 3.0 and higher is required.

  • Google Chrome 12.0 and higher is required.
  • Opera 11.5 and above are required.
  • Android – 2.3 and above for phones and tablets (devices & emulators) (devices & emulators)
  • iOS 3 and higher for mobile devices (devices & emulators) and 3.2+ for tablets (devices & emulators) (devices & emulators)
  • HtmlUnit 2.9 and above
  • Windows, Mac OS X, and Linux are the operating systems available.

All operating systems on which the browsers mentioned above can be used.

Keep in mind that Selenium WebDriver is being referred to as the successor to Selenium RC, which has been deprecated and formally declared by SeleniumHQ.

How to Choose the Right Selenium Tool for Your Need

Why Did You Choose This Tool?

Selenium IDE is an integrated development environment.

To gain an understanding of ideas related to automated testing and Selenium, such as:

commands such as type, open, clickAndWait, assert, verify, and others are examples of selenese commands.

Identifiers such as id, name, xpath, CSS selector, and so on.

Using runScript, you can execute customised JavaScript code.

Exporting test cases in multiple formats.

It is possible to develop tests with little or no prior programming skills.

You can use this tool to quickly construct simple test cases and test suites that you can then export to RC or WebDriver.

For the purpose of testing a web application against only Firefox and Chrome.

Selenium RC is a chemical element.

Create a test that is more expressive than Selenese in order to get better results.

It is necessary to run your test against a variety of browsers (other than HtmlUnit) and operating systems.

Selenium Grid is a tool that allows you to deploy your tests across various environments.

Test your application against a new browser that has JavaScript functionality to ensure that it works properly.

Testing web apps with complicated AJAX-based scenarios is a must for this.

WebDriver

In order to design your test case, you must utilise a specific programming language.

To put to the test applications that have a lot of AJAX-based functionality.

For the purpose of running tests on the HtmlUnit browser.

In order to generate test results that are tailored to the individual.

Selenium Grid is an acronym that stands for Selenium Grid.

For the purpose of running your Selenium RC scripts in various browsers and OS systems at the same time.

For the purpose of running a large test suite that must be completed as quickly as possible

A comparison of Selenium and QTP is presented (now UFT)

It is a proprietary automated testing tool that was previously owned by the business Mercury Interactive before being acquired by Hewlett-Packard in 2006 for an undisclosed sum. There are numerous advantages to using the Selenium Tool Suite over QTP, which are mentioned below:

A Comparison between Selenium and QTP(now UFT)

Selenium QTP

Open source software is free to download, use, and distribute.

Commercial.

Add-ons are limited, although they are very expandable.

It is possible to perform tests across multiple browsers.

Only Firefox, Internet Explorer, and Google Chrome are supported for testing.

It is compatible with a variety of operating systems.

It can only be utilised in Windows environments.

It is compatible with mobile devices.

QTP supports mobile application test automation (iOS and Android) through the use of an HP solution known as HP Mobile Center.

It is possible to run tests while the browser is minimised.

The programme under test must be visible on the desktop in order for the test to be successful.

It is possible to run tests in parallel.

Only parallel execution is possible, but only with the use of Quality Center, which is another paid-for software.

QTP has some advantages over Selenium.

QTP has some advantages over Selenium.

QTP Selenium

It is possible to test both online and desktop applications.

Only web-based applications can be tested.

It includes an object repository that is pre-installed.

There is no built-in object repository in this version.

Because it is a fully featured IDE, it automates more quickly than Selenium.

Because it lacks a native integrated development environment (IDE) and must rely on third-party IDEs for development, it automates at a slower rate.

Because it comes with built-in global and local data tables, data-driven testing is a lot simpler to do.

Data-driven testing is more time-consuming since you have to rely on the programming language’s capabilities for defining values for your test data, which makes it more difficult.

You have access to controls from within the browser (such as the Favorites bar, Address bar, Back and Forward buttons, etc.)

It is not possible to access elements that are outside of the web application under test.

Customer service that is both professional and courteous.

There is no official user assistance available at this time.

Has the ability to export test data into a variety of external formats natively.

It does not have the ability to export runtime data to external formats natively.

Support for parameterization is being developed.

Parameterization can be accomplished using programming, but it is a tough process to implement.

Test reports are created in a fully automated fashion.

There is no native functionality for the generation of test/bug reports.

Despite the fact that QTP has significantly more extensive capabilities, Selenium outperforms QTP in three key areas:

Advantages of QTP over Selenium

The ability to be adaptable (because of a number of programming languages, browsers, and platforms it can support)

Testing in a parallel manner (something that QTP is capable of but only with use of Quality Center)

Summary

Each of the four components that make up the Selenium Software Testing Suite is described below:

It is possible to create reasonably simple test cases and test suites using Selenium IDE, a Firefox add-on that is exclusively available for Windows.

In addition to Selenium Remote Control (also known as Selenium 1), which was the first Selenium tool to allow users to write complicated tests in programming languages, there is also Selenium 2.

WebDriver is a more recent breakthrough that allows your test scripts to interface directly with the browser, allowing you to manipulate it from the operating system’s perspective.

Additionally, Selenium Grid is a tool that can be used in conjunction with Selenium RC to run simultaneous tests across multiple browsers and operating systems.

Selenium 2 is the result of the merger of Selenium RC and WebDriver.

In terms of price and versatility, Selenium outperforms QTP by a significant margin. It also allows you to run tests in parallel, which is in contrast to QTP, which only allows you to execute tests in sequential order.