Adding HTML/Web support to a desktop application, or even providing a desktop application that’s almost completely built with Web technologies, is quite a popular way of providing modern and fast-evolving user interfaces and applications. There are some projects that embed an almost complete web browser into the application, while others focus on providing a ready-made shell for showing a web application to users on desktop platforms. Many of these projects use the Chromium browser component that Google Chrome is based on, for example Chromium Embedded Framework, Electron or nw.js to name just a few.
One thing these Chromium-based frameworks have in common is that they remove or disable some of the features that a full-blown browser has, for example, they usually do not provide support for installing extensions into the browser. That has been a problem for Squish for Web so far since it heavily relies on information obtained through such an extension and hence cannot be used to automate desktop applications built with these frameworks.
Squish’s solution to the problem
In the past weeks, developers here at froglogic have worked hard to remove this limitation, and with the next release of Squish we will provide support for hooking into and automating all web-based content in desktop applications where the web components are based on Chromium.
This new feature for automating Chromium-based applications is based on the Webdriver protocol and the chromedriver utility provided by the Chromium project, so the only requirement on the application that should be automated is the ability to have Chromium open up the debugger port. Once this is set, you can simply specify the AUT as a browser in the Browser selection dialog which provides a new entry for these types of applications.
Squish for Web will work the same way as it would work for a standalone browser like Mozilla Firefox or Google Chrome. You can record and replay interactions, specify property verifications and also leverage other features Squish provides, like inspecting all contents of the web views, creating BDD-based tests or working with visual verification points.
Availability and Limitations
The Squish 6.3 release including this feature will happen sometime later this year, however any existing customers interested in trying this out for their Chromium-based desktop application are invited to contact our support to request a pre-release snapshot package.
Since the support for Chromium-based applications is based on third party techonology like Webdriver and chromedriver there are some small limitations when comparing to the support we provide for the standalone Google Chrome browser. Most notably Squish is not able to interact with the application outside of the web rendering components, so for example it cannot easily show a particular web view by clicking a button or opening a menu item. Similarly Squish is not able to maximize, minimize or resize the desktop application window. You can find a more complete list of known limitations and problems in the documentation shipped with the package and in the preview version that is online.