Application testing with virtual object recognition
First Claim
1. A method for recognizing graphical objects comprising the following steps:
- obtaining a current display state from a graphical user interface operating system;
classifying displayed windows as canvas windows or control windows;
classifying control windows which are separate windows as native controls, otherwise classifying control windows which are part of a canvas window as rendered controls;
transforming a real window hierarchy which is used to create the displayed windows into a perceived window hierarchy corresponding to the visual display of the displayed windows;
identifying graphical objects in the perceived window hierarchy as graphical object primitives;
applying a series of rules to the graphical object primitives to characterize the graphical object primitives as logical objects based on visual characteristics of said graphical object primitives.
6 Assignments
0 Petitions
Accused Products
Abstract
A method of recognizing graphical objects by subjecting the graphical information gathered through "spying" to a series of rules by which the object becomes understood or recognized as an instance of a standard logical object. Before the rules are applied, graphical objects are first interpreted as primitives including groups of text, lines and images. In order to recognize a graphical object as a logical object, the graphical information is subjected to the rules in an iterative process whereby an understanding of the object is continually refined. As the rules are applied, the results are evaluated to determine whether the graphical object can be "mapped" to a standard logical object such as a textfield or listbox. Once the object is understood as a logical element with which the user is accustomed, it is possible to interact with the object and obtain data from the object as if it were a standard object with a published interface. By subjecting the graphical data to a series of rules designed specifically to recognize tables, the boundaries and the internal structure of rows and columns will be understood. Once the graphical data is recognized as a table, the data which it contains in rows can then be accessed. By classifying an object as an instance of a known object, assumptions can be made about the object so that it can be navigated or validated by sending events or messages.
-
Citations
55 Claims
-
1. A method for recognizing graphical objects comprising the following steps:
-
obtaining a current display state from a graphical user interface operating system; classifying displayed windows as canvas windows or control windows; classifying control windows which are separate windows as native controls, otherwise classifying control windows which are part of a canvas window as rendered controls; transforming a real window hierarchy which is used to create the displayed windows into a perceived window hierarchy corresponding to the visual display of the displayed windows; identifying graphical objects in the perceived window hierarchy as graphical object primitives; applying a series of rules to the graphical object primitives to characterize the graphical object primitives as logical objects based on visual characteristics of said graphical object primitives. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A method for recognizing graphical objects and grouping said graphical objects into a table having at least one row and at least one column, said method comprising the following steps:
-
identifying graphical objects as graphical object primitives; grouping the graphical primitive objects in a window using an object grouping process thread in order to create virtual objects, said grouping step comprising the step of creating rectangles from lines; constructing a list of cells in said window, wherein said cells comprise rectangles; sorting said cells by their vertical position, and then left to right for cells with the same vertical position; dividing said cells into rows based on the vertical positions of said cells, the cells on a given row having substantially similar vertical positions, said dividing step including the step of identifying a row break when the top of a cell being considered is below the bottom of a cell in the row having the highest bottom position; and creating links for at least one cell in the table, said links including a below link which points to the next cell in the same column, and a right link which points to the cell which is the next cell in the same row. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
Specification