Selenium is a software testing framework for web applications. It’s one of the most widely used frameworks for the web testing.
Selenium was developed by Jason Huggins in 2004 as an internal project at ThoughtWorks. Huggins later joined google where he continued to work on selenium. Around same time, Simon Stewart at ThoughtWorks developed a browser automation tool known as WebDriver. In 2009, at a meeting in GTAC (Google Test Automation Conference) it was decided to merge these two projects and Selenium WebDriver (also called as Selenium 2.0) came to life.
This is a record-and-playback tool for web browser tests. It’s an add-on for Firefox browser. It allows recording, editing, playback and debugging of the tests. The only drawback associated with IDE is that it is available for Firefox browser.
This WebDriver is the set of client APIs and successor of Selenium Remote Control (RC). With the use of the API, one can have more control and flexibility over the tests to be performed. The API bindings are available for Java, C#, Python and Ruby. It supports a variety of browsers.
This provides functionality to execute the tests in distributed and remote environments on a variety of browsers and operating Systems.
Support for a variety of OS Platforms
The WebDriver component of Selenium supports execution of test cases across variety platforms like Mac OS, Linux and Windows.
Support for multiple browsers
WebDriver supports multiple browsers like Firefox, Opera, IE and Chrome.
Support for multiple programming platforms
Test cases with Web driver can be programmed using Java, C#, Python and Ruby. One can choose programming language of choice for this.
There is no licencing cost for Selenium as it is open source. It can even be used for commercial purpose.
Support for Mobile Application Testing
The frameworks like Appium, Robotium and Selendroid extends the functionality of Webdriver for testing mobile apps on Android and iOS.
Limitations of Selenium
As it’s a browser automation tool, hence it does not support testing of Desktop applications.