1. Licence type
QTP/UFT - Commercial software (Concurrent and per user licence)
Selenium - Open source.
Webdriver - Open source.
2. Software size
QTP/UFT - Around 1.5GB
Selenium - Set of Libraries, around 20MB (Need to include other
supporting software)
Webdriver - Set of Libraries, around 20MB (Need to include other
supporting software)
3. Software Support
QTP/UFT - From HP
Selenium - Saucelabs.com, Element34 , Commercial Support
Webdriver - Same as Selenium
4. Identifying objects.
QTP/UFT - Object properties, Repository objects
Selenium - Html ID, xPath, CSS, DOM, Link text
Webdriver - Html ID, xPath, CSS, DOM, Partial Link text, Class Name
5. Spying object
QTP/UFT -
GUI Spy/API Spy
Selenium - There is no option, can record script in Selenium IDE,
can spy objects using IE developer tool bar, FireBug and also using http://saucelabs.com/builder
Webdriver - Same as Selenium, there is no option of recording the
scripts. With the introduction of built in developer tool bar from IE8 made
thing easy for IE.
6. Scripting language
QTP/UFT - VB Script, C#(UFT API tests)
Selenium - Any language HTTP library (Java, C#, Python, Ruby...)
Webdriver - Java, .Net, Python, Ruby, Node JS
7. Environment.
QTP /UFT- Windows, MacOs
Selenium - Windows, OS X, Linux, Solaris.
Webdriver - Windows, Mac, Linux, iOS, Android
8. Browsers supported
QTP/UFT - IE, Firefox (Run scripts),safari,Chrome
Selenium - IE, Firefox, Safari, Opera
WebDriver - IE, Firefox, Safari, Opera, Chrome, Android,
iPhone
11. Identifying objects
QTP/UFT - Browser.Page.Object.Method for each step.
Selenium - Directly execute methods, no browser page reference
required.
WebDriver - Directly execute methods, no browser page
reference required.
12. Debugging code (Setting breakpoints in the code)
QTP/UFT - Yes
Selenium - No (Need to read logs and understand the error)
Webdriver - No (Write wrapper around webdriver listener to
read logs, from 2.15 it is automatically generating logs)
13. Control Opened browsers (Attach to running browsers)
QTP/UFT - Yes (Opened after QTP program)
Selenium - No (Session information is lost) .
Webdriver - No (Fix in Progress)
14. Supporting Applications
QTP - Web applications, SAP, Activex, VB, Windows...(Support
provided using Addins)
Selenium - Only Web application.
Webdriver - Only Web application.
15. As performance testing tool
QTP/UFT - No, you can run one QTP application in one CPU.
Selenium - It can open many many browsers using GRID, many
companies line PushToTest, BrowserMob, Gomez use selenium technology for
running load test.
Webdriver - Same as Selenium, now we have GRID2.
16. Current Version
QTP/UFT – 12.5(July 2015)
Selenium - 2.0
Webdriver - 2.48
17. Object not found timeout
QTP/UFT - It will wait till the timeout happen.
Selenium - If browser status is Done, it will through exception. In
some cases it will wait for time out.
Webdriver - Same as Selenium, It has implicit and explicit
timeouts.
18. Execute JavaScript
QTP/UFT - Yes
Selenium - Yes
Webdriver - Yes
19. Access page DOM
QTP/UFT - Yes
Selenium - Yes
Webdriver - Yes
20. Flex objects
QTP/UFT - Yes
Selenium - Yes Selenium Flex
Webdriver - Yes Selenium Flex
21. Scripting complexity
QTP/UFT - Simple, but implementing framework
is complex.
Selenium -Simple, but implementing framework is complex.
Webdriver - Simple, but implementing page objects is
slightly complex.
22. Cost
QTP - 9K USD per user (Approx) + Annual maintenance charges.
Selenium - FREE (Any number of users...)
Webdriver - FREE (Any number of users...)
23. IDE
QTP/UFT - Own IDE
Selenium - Any IDE (I prefer Eclipse)
Webdriver - Any IDE (I prefer Eclipse)
24. Flavors
QTP/UFT – QTP/UFT with different Add-in's
Selenium - Selenium core, Selenium IDE, Selenium RC, Selenium
GRID.
Webdriver - Webdriver, GRID2.
25. Extendability
QTP/UFT - No
Selenium - Yes, you can customize and implement for new browsers.
Webdriver - Same as Selenium.
26. Exception Handling
QTP/UFT - Need to handle manually. Using .Exist, On error resume
next, recovery scenarios. Script would stop in the middle
by throwing run-time error if not handled properly. Programmer should
have complete understanding where to use exception handling, else
he suppress real errors.
Selenium - Handled automatically when used with TestNG, it will
automatically move to next test case and user can implement Try...Catch to
handle specific exceptions.
Webdriver - Same as Selenium. It has some extra exceptions like
NoElementFound where code can be handled in a better way.
27. Reporting and Assertions(Checkpoints)
QTP/UFT - Reporting and checkpoints are built in the same package.
Selenium - Need to depend on testing frameworks like TestNG or
Junit.
Webdriver - Same as Selenium.
28. Recording the script
QTP/UFT - Built in recorder that can generate script on IE.
Selenium - Selenium IDE as Firefox add on.
Webdriver - No
29. Script Execution
QTP/UFT - Just hit Run button.
Selenium - Need to run Selenium Server and it opens a separate
window apart from the browser.
Webdriver - Just hit play button.
30. Page synchronization
QTP/UFT - Use .Sync method to check the page load for every
page navigation.
Selenium - Use Wait for page load.
Webdriver - It is handle automatically, no method is
required.
31. Handle
AJAX calls
QTP/UFT - Manual
Selenium - Manual
Webdriber - Manual
32. XPath Support (Awesome technique to locate elements when there
is no id or name)
QTP/UFT - Yes
Selenium - Yes (Very slow on IE)
Webdriver - Yes
33. Accessing windows objects (Folders, Excel, Notepad)
QTP/UFT - Easy (As it is developed in VB script native windows
script. I hope this is one of the reason why qtp selected VB Script)
Selenium - Not so easy, need to depend on open APIs.
Webdriver - Same as selenium.
34. Code base
QTP/UFT - Huge, storing Actions occupy lot of space and more number
of files. I prefer creating code in function libraries only (.vbs, .txt, .qfl)
Selenium - Small, text file with .java extension. Suitable with
any configuration management tools.
Webdriver - Same as selenium.
35. Executing test on different systems
QTP/UFT - Need to setup QTP/UFT and copy the code execute it.
Selenium - Using ANT it is possible to compile into standalone
jar file, so that it is easily executed from the command prompt.
Webdriver - Same as selenium.
36. APIs
QTP/UFT - Each object has methods and properties.
QTP classified the objects into (WebEdit[Textbox], WebButton, WebList,
WebRadio Button....). Objects are classified into Windows, Web, People soft,
SAP, Visual Basic, Activex...., need to add extra licensed programs called
Addin for supporting of the corresponding objects. Addin program can help QTP/UFT
to identify the properties in specific environment. To identify an
object on the screen, need to provide properties. Properties are classified
into Mandate, Assistive and ordinal properties.
Selenium - Directory based API, all methods exist in one
class. It is a table based API that contain 3 columns
Note: Browser, Page details are not required; its reference is automatically
handled by Selenium session.
Webdriver - Complete OOPs.
37. Number of Methods
QTP/UFT - Each object has certain methods, most of the methods are
unique like Set, Click, Select...
Selenium - Few methods.
Webdriver - You can complete most of the script using click
and SendKeys.
38. Object Repository (Object information is stored separately
during recording and can be edited if required)
QTP/UFT - Yes. Also provide option to define objects at code level
called descriptive programming (DP).
Selenium - NO, only through code.
Webdriver - NO, only through code.
39. Page Objects
Implementation
QTP/UFT - VB script don't supports complete OOPs, but can
be achieved with Dual-Function
Framework.
Selenium- I think no, it is not possible to move Selenium session from
one class to another, but methods can
be grouped as per the page by extending the Selenium interface.
Webdriver - Yes, support complete OOPs. (Planning to write a new
post on this with an example).
40. Synthesizing events on the page
QTP/UFT - Synthesize events on DOM.
Selenium - Synthesize events on DOM.
Webdriver - Type looks very realistic as though real user is
typing. I think they are sending the events to IE instance message queue. (Need
to understand the technique used)
Over all comparison:
QTP -
Browsers - (IE/Firefox)
OS - (Windows)
Scripting - (VB Script)
Licence - ($8000 per user)
Webdriver -
Browsers - (IE, Firefox, Safari, Opera, Chrome, Android, iPhone),
OS - (Windows, Mac, Linux, iOS, Android)
Scripting - (Java, .Net, Python, Ruby, Node JS)
Licence - Free