SELENIUM

Why Selenium?

There are many functional test tools available as we have already discussed before. We prefer selenium over other testing tools because of the following reasons:
  • It is an open source tool, hence zero cost. 
  • It supports many programming languages (i.e., Java, C#, Ruby, Phython etc.)
  • As many people use Selenium tool today, large number of communities exists for help.

Selenium’s Tool Suite

It consists of multiple tools as discussed below:

Selenium IDE

Selenium IDE (Integrated Development Environment) is a Firefox and chrome plugin, with an easy to use interface. It is record and play tools, where user records an action in the web page, store it and play the same tests with new values to it. User can export them as a reusable script in one of many programming languages.

Selenium 1 (also known as Selenium RC or Remote Control)

Selenium RC was the main Selenium project for a long time, before the WebDriver was brought up in Selenium 2, the newest and more powerful tool. As of now Selenium 1 is almost obsolete and is not actively supported.

Selenium 2.0, 3.0 (also known as Selenium WebDriver)


WebDriver is an test automation framework by Selenium which allows an user to write test scripts in different programming languages (Java, C#, Python, PHP, Perl and Ruby) and can execute them in Mozilla Firefox, Chrome, Internet Explorer browser and many more.

Selenium Grid

Selenium-Grid allows the Selenium solutions to scale for large test suites and for test suites that must be run in multiple environments. Selenium Grid allows you to run your tests in parallel, that is, different tests can be run at the same time on different remote machines. 

Selenium WebDriver Framework

Fig 1: How Selenium Works

Language Level Bindings

You can see at the Left hand side here we’ve got some bindings and these are language level bindings and with which you can implement the Selenium webdriver code. In simple words these the languages in which are making an framework, will interact with the Selenium Webdriver and work on various browsers and other devices. So we have a common API that we use for Selenium that has a common set of commands and we have various bindings for the different languages. So you can see there’s Java, Java, Python, Ruby, there’s also some other bindings and new bindings can be added very easily.

Selenium WebDriver API

Now these bindings communicate with Selenium Webdriver API and and This API send the commands taken from language level bindings interpret it and sent it to Respective driver. Right now don’t worry about how it works. I will explain them in upcoming posts. In basic term it contains set of common library which allow to send command to respective drivers.

Drivers

Drivers here at the right hand side, you see we have various internet browser specific drivers such as IE driver, a Firefox, Chrome, and other drivers such as HTML unit which is an interesting one. It works in headless mode which make text execution faster. It also contains mobile specific drivers as well. But the basic idea here is that each one of these drivers knows how to drive the browser that it corresponds to. So the Chrome driver knows how to handle the low level details of Chome browser and drive it to do things like clicking button, going into pages, getting data from the browser itself, the same thing for Firefox, IE, and so on.

Comments

Popular posts from this blog

BEGINNING WITH SELENIUM

Setting up Maven in Eclipse editor