What is Selenium?

Reading Time: 3 minutes

Introduction

Selenium is a suite of open-source testing tools for web apps that can be utilized across multiple platforms and browsers. Selenium is comprised of four different tools, each providing a different testing capability.

Parts of the Selenium Testing Suite

  • Selenium Integrated Development Environment (IDE)
  • Selenium Grid
  • WebDriver
  • Selenium RC
selenium parts

The “Same Origin” Policy Issue

The “Same Origin” policy issue is an essential premise in the web app security framework. Under this guideline, a browser only allows JavaScript to be executed within a single domain. An “origin” is characterized by a mixture of a hostname, port number, and URI scheme. Simply put, this directive prohibits malevolent JavaScript located on a page on abc.com from acquiring access to confidential data on a different web page located on xyz.com. 

We only mention the “Same Origin” policy issue here because, due to the core language of Selenium being based on JavaScript, it originally needed to be installed on the same domain as the tests were being run, which caused issues. This was later addressed by using a proxy.

same.origin

Introduction to Selenium IDE 

The Selenium IDE or Integrated Development Environment allows us to record, edit, and debug tests. It is available as both a Firefox/Chrome plugin that can be installed as easily as any other browser plugin. Due to its simplicity, the Selenium IDE should only be used as a prototyping tool with Selenium RC and WebDriver capabilities. 

ProsCons
Selenium is very easy to use and installIs not designed to produce prototypes of tests
Knowledge of HTML and DOM are needed,
but no other programming languages are required
Developed to be a prototype tool
Selenium IDE can export tests to the Selenium RC and WebDriver toolsNo support for conditional operations and iteration  
Selenium IDE has built in help options as well as test results reporting modulesTest execution is slow compared to that of Selenium RC and WebDriver
Selenium IDE also provides support for extensions

Introduction to Selenium RC

Selenium RC is the cornerstone testing framework of the entire Selenium project. It is the first automated web testing tool that allows users to utilize a preferred programming language. As of version 2.25.0, Selenium RC supports the following programming languages:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby
ProsCons
Cross-browser and cross-platformThe installation is more complicated than the IDE
Can perform looping and conditional operationsThe user must have programming knowledge
Can support data driven testingNeeds Selenium RC Server to be running
Has matured and complete APIThe API contains redundant and confusing commands
Can readily support new browsersBrowser interaction is less realistic
Faster execution than IDE It can provide inconsistent results and uses JavaScript
Slower execution than WebDriver

Introduction to WebDriver

The Selenium WebDriver proves itself to be dominant over both Selenium IDE and Selenium RC in many aspects. It can implement a more modern and stable approach in automating the browser’s actions. It does not rely on JavaScript for automation, but it controls the browser by directly communicating with it. It also supports the same languages as Selenium RC: 

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby
ProsCons
A more straightforward installation than Selenium RCInstallation is more complicated than Selenium IDE
Communicates directly to the browserRequires programming knowledge
Browser interaction is more realisticCannot readily support browsers
No need for a separate component such as the RC serverHas no built-in mechanism for logging runtime messages and generating test results
Faster execution time than IDE and RC

Introduction to Selenium Grid

When used together with Selenium RC, Selenium Grid allows for simultaneous testing across different machines and browsers at the same time.

Features of Selenium Grid: 

  • Selenium Grid enables multiple tests to be run in different browsers and environments simultaneously.
  • Selenium Grid is very cost-effective in its ability to save time.
  • Selenium Grid also utilizes the hub-and-nodes idea. The hub behaves as a central location for Selenium based commands dispersing to every node connected to it.

Now that we have outlined what Selenium is, what it is used for, and what are the prevalent tools that it uses, we will stop here. In our next article, we will cover the installation of each separate tool, how they are used, plus a comparison between Selenium and its main competitor QTP (HP Quick Test Pro), now known as Micro Focus Unified Functional Testing (or UFT). 

Want More Information?

We can provide multiple use case examples where Selenium can assist you with unit testing your applications in multiple environments.

Give us a call at 800.580.4985, or open a chat or ticket with us to speak with one of our knowledgeable Solutions Team or an experienced Hosting Advisors today!

Series NavigationNext Article >>

Author Bio

About the Author: Nickolas Newell

I am 28 years old, self-motivated and goal-driven person, with a vast knowledge of telecom infrastructure, software development and debugging. My love for technology was born when I started college 9 years ago. In my free time, I like cycling, reading all kind of books from SF to tech stuff. My philosophy is that if I am able to help, I would and in most cases, I would not ask for anything in return since helping those in need is something I like to do.

Refer a friend and get hosting credit!