I am working on finding an automated testing tool for a POC project at my organisation. In past I have worked on automation of desktop and web applications using Selenium,QTP and CodedUI. These tools are really powerful to perform automation in their own domains.
Problem: The application is a desktop app installed on your computer, the UI is HTML based which is embedded inside the desktop window. I tried using Spy++ to find window elements but can't get any elements on the screen (Links or labels etc.). The application communicates with remote services using JS and JSON (For regular updates and other data transfer purposes).
I want to know if anyone can direct me to a reliable tool which can be implemented in our continuous build environment and is not heavily dependent on the record and play type (hard coded) feature because then it would be impossible to use it again. Also it will be great to use languages such as C#, Java or Python so that the learning curve is not so steep.
My Analysis till now and preference in descending order.
Tool Name
- Coded UI
- Robot Framework
- QTP
- Silktest(silk4J)
- QTWebkit test
- RationalTest
- Squish
Adding a screen shot of the desktop application window and HTML Code used rendered inside.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
<!-- Scripts -->
<script type="text/javascript" src="../CommonScripts/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../CommonScripts/api.js"></script>
<script type="text/javascript" src="../CommonScripts/log.js"></script>
<script type="text/javascript" src="../CommonScripts/utils.js"></script>
<script type="text/javascript" src="../CommonScripts/json.js"></script>
<script type="text/javascript" src="../CommonScripts/SoftwareManager.js"></script>
<script type="text/javascript" src="../CommonScripts/FulfillmentApi.js"></script>
<script type="text/javascript" src="../CommonScripts/messagebox.js"></script>
<script type="text/javascript" src="../CommonScripts/ui.js"></script>
<script type="text/javascript" src="../CommonScripts/tier.js"></script>
<script type="text/javascript" src="FulfillmentUi.js"></script>
<!-- CSS -->
<link type="text/css" rel="stylesheet" href="../CommonScripts/ui.css">
<link type="text/css" rel="stylesheet" href="FulfillmentUi.css">
</head>
<body id="UI/SOFTWARE">
<div id="container">
<div id="header">
<img src="../images/OP-logo.png" id="logo" alt="B">
<ul id="navList">
<li class="current first">
<a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\SoftwareSection\FulfillmentUi.html">
<span class="arrow"></span>Software</a></li>
<li class=" "><a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\MessagesSection\MessagesUi.htm">
<span class="arrow"></span>Messages</a></li>
<li class=" last"><a href="C:\Program Files (x86)\Al\Service Agent\5.9.9.3130.1\resources\UiSections\PreferencesSection\PreferencesUi.htm">
<span class="arrow"></span>Preferences</a>
</li>
</ul>
</div>
<table id="softwareTable" cellpadding="0" cellspacing="0"><!-- Software Inserted Here --><tbody><tr id="BITR/IS"><td class="name"><img src="../images/icon_default.gif">
<h2>AlS S</h2></td><td class="status"><span>Installation failed.</span></td>
<td class="action">
<a href="#" class="button">Retry </a>
<a href="#" class="button">Cancel </a>
</td>
</tr>
</tbody>
</table>
</div>
</body></html>