Selenium is a popular open-source web based automation tool. Selenium is a robust set of tools that supports rapid development of test automation for web-based applications.
Selenium has following features:
2) Hooks for many other languages - Java, Ruby, Python, C#.
3) Can simulate a user navigating through pages and then assert for specific marks on the pages.
4) It has various versions like Selenium IDE, Selenium Remote Control, Selenium WebDriver, and Selenium Grid.
Selenium IDE (referred as Integrated Development Environment) is the simplest tool in the Selenium Suite. Selenium IDE is a Record and Playback tool, which is very simple to utilize, but it's very unreliable.
Selenium IDE was created to enhance the speed of creating the test cases. It has record & playback feature which help you to create simple tests rapidly (within seconds).
It has a very good user interface and also supports numerous extensions. It is a Firefox add-on that creates tests very rapidly through its record-and-playback functionality. This feature is alike to that of QTP.
It is easy to install and learn. Selenium IDE should only be utilized as a prototyping tool - not an overall solution for developing and maintaining complex test suites.
Selenium WebDriver is a web automation framework that permits you to run your tests against diverse browsers, not just Firefox WebDriver also enables you to use a programming language in creating your test Following programming languages are supported by WebDriver are Java, .Net, PHP, Python, Perl, Ruby.
You do not have to know all of them. You just need to be knowledgeable in one. It was the first cross-platform testing framework that could control the browser from the OS level. It is the actual core API which allows you to write standalone tests.
Selenium IDE only works in Mozilla browser Whereas WebDriver supports with all browsers like Firefox, IE, Chrome, Safari, and Opera etc.
IDE is a GUI Plug-in whereas WebDriver is actual core API which has binding in a range of languages.
IDE is very simple to use as it is record & playback whereas WebDriver doesn’t supports record and playback. IDE is not object oriented whereas WebDriver’s API’s are entirely Object oriented.
In IDE there is need to append full xpath with ‘xpath=\\’ syntax whereas in WebDriver there is no need to append full xpath with ‘xpath=\\’ syntax.
IDE does not support listeners whereas WebDriver supports the implementation of listeners. IDE does not support to test iphone/Android applications whereas WebDriver support to test iPhone/Android applications.
IDE is very simple to use as it is record & playback whereas WebDriver is bit complex and large API. IDE doesn’t supports of moving mouse cursors whereas WebDriver supports of moving mouse cursors.
WebDriver does not have record and playback features, but what it has is following:
1) Ability to handle native alerts.
2) Handle file upload across selenium grid (you don't need to rely on a specific file on the system, WebDriver can serialize the file and generate a data URL on the other end).
3) More robust scripts as you can tap into the power of the host language. This gives us Better error handling, Reusable modules, Ability to tap into coordinate stuff outside of web browser, Ability to leverage development code to speed up testing.
This greatly speeds up tests. For those who want to make more robust, scalable tests, will prefer WebDriver and treat automation as a programming problem.