What is Selenium?
Selenium automates browsers.Selenium is an Open Source(Freely Available)and combination of software tools which is used in automation testing of web applications across different browsers and platforms.
Selenium is a set of multifarious software tools each with a different approach to supporting test automation.
The name Selenium comes from a joke made by Jason Huggins(Inventor of Selenium) in an email, mocking a competitor named Mercury(UFT now), saying that you can cure mercury poisoning by taking selenium supplements.
It consists of 4 components:-
• Selenium IDE( Integrated Development Environment)
• Selenium RC( Remote Control)
• Selenium Grid
What about the History?
Interview with Jason Huggins
It’s credit goes to Shinya Kasatani (@shinya), from Japan created a Firefox plugin that effectively wrapped the “core” code into an IDE that would allow record, edit and playback of Selenium scripts).
Webdriver,Inventor was Simon Stewart (a ThoughtWorks consultant in Australia at that time,now as off 2014 , part of Facebook team ) started “WebDriver” in early 2007, who in order to overcome the limitation of separate server to be started in RC , created an approach so that tool can speak directly to browser using the native methods of browser and operating system.
RC v/s WebDriverWhen WebDriver was released there were significant differences between it and Selenium RC,most prominent was:-
Better API’s :-
Selenium RC had a dictionary-based API(with all methods exposed as single class) while webdriver had a more object-oriented API.
Testing Mobile Application:-
We can test mobile based applications by using mobile drivers like IPhoneDriver and AndroidDriver.
ThoughtWorker Philippe Hanrigou (@ph7) created ‘Selenium Grid’ which allowed Selenium RC to be used in expanded capacity. Selenium-Grid allows to execute tests on different machines against different browsers in parallel. Meaning, running of multiple tests at the same time against different machines running different browsers and operating systems.
This included the potential for multi-threading tests in parallel from a single test invocation, and utilizing a large number of browser (multi-OS) elsewhere
It was only In August, 2009, it was announced that the two projects would merge, thus RC+ Webdriver came as Selenium WebDriver.Thus overcoming the limitations of RC and also utilizing the capabilities of RC(different lanugauge binding), selenium webdriver was formed (Also called Selenium2)
Selenium 1.0 + WebDriver = Selenium 2.0
Starting with Selenium