What is Selenium ?

Selenium is one of the most popular open-source automated testing Tools available today.

Selenium is a set of different tools each with a different approach to supporting test automation. Learning all the tools will give you many different options for approaching different test automation problems.These tools when used together give many options for locating the UI elements and comparing expected test results against actual application behavior. The following  are the four tools that comprise the Selenium's Tools Suite:

Selenium IDE - is a Firefox Plug-in which provides an easy-to-use interface for developing automated tests. Selenium IDE has a recording feature, which records user actions as they are performed and then exports them as a reusable script in one of many programming languages that can be executed later.

Selenium 1 (or Selenium RC) - was the main Selenium project for a long time (i.e. Currently Selenium 2 is the main project). Selenium 2 still runs Selenium 1's Selenium RC interface for backwards compatibility. Selenium 1 has support for almost all browsers. Selenium 1 has support for several languages like Java, C#, Ruby, Python, Pearl, Javascript and PHP.

Selenium 2 (or Selenium WebDriver) - is the main Selenium Project now. This brand new automation tool provides all sorts of awesome features, including a more cohesive and object oriented API as well as answer to all limitations of the old implementations in Selenium 1. Selenium 2 tool is formed on merging Selenium 1 and WebDriver. Both the Selenium 1 and WebDriver Developers agreed that both tools have advantages and that merging both the tools would make a more robust automation tool. As they decided that after merging both the tools WebDriver will addresses some shortcoming in the selenium tools (i.e. To get a gorgeous API which is missing in Selenium 1) and Selenium 1 will addresses some shortcomings in the WebDriver (i.e. To support for broader range of Browsers) and finally after merging they have offered users the best possible framework.

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 automates web applications for testing purposes, but is certainly not limited to just that.

Few Good things about the Selenium :

1. Selenium is an open source tool i.e. Unlike the proprietary tools its available free of cost.
2. This is the best tool available in the market for web application testing
3. Its extensible and flexibility, along with its tight integration with the browser, is unmatched by available proprietary tools.
4. Selenium is possibly the most widely used open source solution.
5. One of the selenium's key features is the support for executing one's tests on multiple browser platforms like Internet Explorer, Firefox, Google Chrome, Opera, Safari etc.
6. Selenium allows you to control a browser from a language of your choice. (i.e. we can write automation tests in the language of our choice i.e. Java, C#, Ruby, Python etc
7. Selenium is available for Operating Systems such as Windows, Linux and Mac
8. Selenium can be used for functional, compatibility, regression testings and User Acceptance Testing (Mainly used for Regression Testing).

Drawbacks of using Selenium Automation Tools:

1. Selenium is a browser based testing tool. It cant be used for automating the desktop applications. (i.e. It can be used only for automating the web based applications)