Skip to content

adapting the Page Object Model to test desktop applications with Sikuli

Notifications You must be signed in to change notification settings

leobooth/sikuli-pageobject-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sikuli-pageobject-demo

Sikuli is a Java application that uses OpenCV and Java Robot to look for an image within a larger on-screen image and interact with it. This simplicity allows Sikuli to be used to automate almost anything - webpages, desktop applications, mobile phone apps, even games. As a result, however, one must create the structure to automate the application under test.

A typical Windows Desktop application has the following structure (see https://docs.microsoft.com/en-us/windows/win32/uxguide/visual-index):

  1. a Desktop on which the user interface of an Application appears
  2. one or more Screens which may extend the Desktop
  3. the Application itself
  4. at least one Window that contains the user interface
  5. at least one Form that contains user interface Elements
  6. at least one Element that the user interacts with

To make testing Windows desktop apps easier, this repository provides classes with a similar structure:

  1. SikuliDesktop: a single Desktop on which the application appears
  2. Screen: a pre-existing Sikuli class which simulates a computer monitor
  3. SikuliApp: a class used to open and manage application connections and focus windows
  4. SikuliWindow: one or more windows that can be used to restrict the image search area
  5. SikuliPage: one or more pages displayed in a window that contain elements (similar to a traditional WebDriver PageObject)
  6. SikuliElement: one or more elements that contain images used to drive UI interactions

About

adapting the Page Object Model to test desktop applications with Sikuli

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages