IP Library Granted Patent US 7,451,455
Granted Patent B1
US 7,451,455 · App. 10/609,229 · Granted Nov 11, 2008

Apparatus and method for automatically manipulating software products

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,451,455
App. No.
10/609,229
Granted
Nov 11, 2008
Kind
B1
Abstract

A manipulation tool (e.g., “the XABLE tool”) provides a user interface (UI) automation library that allows a tool user to find existing UI objects and then perform a UI action on such UI objects. In one exemplary application, the manipulation tool can be used by script writers to automatically drive the UI of an application under test. A plurality of selectable search strategies are provided for searching for UI objects. Further, an event handling object is provided for monitoring the firing of UI objects.

Claims (31)

1. An apparatus comprising a computing device having one or more processors and computer-readable storage media for interacting with a target software product having user interface functionality, comprising:

script execution logic configured to execute a script that involves interaction with the user interface functionality of the target software product; and

manipulation tool logic that provides functionality for use by the script application logic in interfacing with the target software product,

wherein the manipulation tool logic includes search logic configured to search for a user interface object using a plurality of different selectable search strategies and comprises event handling logic configured to monitor a firing of the user interface object and execute a callback function upon the occurrence of a specified event caused by the firing of the user interface object, wherein the event handling logic is further configured to block the execution of the script execution logic until a second specified event has occurred within a specified timeout period, wherein error processing is performed if the second specified event does not occur within the specified timeout period, the callback function executing a prescribed function upon the occurrence of the specified event, wherein one of the search strategies is a flag-based attribute search strategy that involves comparing a specified property value and qualifying flag information with information associated with the user interface object, wherein the flag information is configured to provide a filtering function in a search by restricting results of the search to a certain subset of results based on the flag information.

2. An apparatus according to claim 1 , wherein the manipulation tool logic is configured to interface with the target software product using a window-type interface and an accessibility interface.

3. An apparatus according to claim 1 , wherein one of the search strategies is an SQL-type query string search strategy that involves comparing a specified string with information associated with the user interface object.

4. An apparatus according to claim 1 , wherein the second specified event pertains to a firing of a specified user interface object or the user interface object.

5. An apparatus comprising a computing device having one or more processors and computer-readable storage media for interacting with a target software product having user interface functionality, comprising:

script execution logic configured to execute a script that involves interaction with the user interface functionality of the target software product; and

manipulation tool logic that provides functionality for use by the script application logic in interacting with the target software product,

wherein the manipulation tool logic includes search logic configured to perform a flag-based attribute search strategy that involves comparing a specified attribute value and qualifying flag information with information associated with a second user interface object or the user interface object, wherein the flag information is configured to provide a filtering function in a search,

wherein the manipulation tool logic further comprises event handling logic configured to block the execution of the script execution logic until a specified event has occurred within a specified timeout period, wherein error processing is performed if the specified event does not occur within the specified timeout period, and

wherein the event handling logic is further configured to monitor a firing of a user interface object and execute a callback function upon the occurrence of the specified event or a second specified event caused by the firing of the user interface object, the callback function executing a prescribed function upon the occurrence of the specified event or the second specified event.

6. An apparatus according to claim 5 , wherein the specified event pertains to a firing of a second user interface object.

7. An apparatus according to claim 5 , wherein the manipulation tool logic is configured to interface with the target software product using a window-type interface and an accessibility interface.

8. An apparatus according to claim 5 , wherein the manipulation tool logic includes search logic configured to perform an SQL-type query string search strategy that involves comparing a specified string with information associated with a second user interface object or the user interface object.

9. A method for interacting with a target software product having user interface functionality, comprising:

executing a script that involves interaction with the user interface functionality of the target software product; and

interfacing with a manipulation tool library to carry out at least two functions specified in the script, wherein the at least two functions include:

searching for a user interface object using a selectable one of a plurality of different search strategies provided by the manipulation tool library, wherein one of the selectable search strategies is a flag-based attribute search strategy that involves comparing a specified attribute value and qualifying flag information with information associated with the user interface object, wherein the flag information is configured to provide a filtering function in a search; and

executing a callback function upon the occurrence of a specified event within a specified timeout period caused by a firing of the user interface object, the callback function executing a prescribed function upon the occurrence of the specified event and blocking the execution of the script until the specified event has occurred within the specified timeout period and generating an error message if the specified event does not occur within the specified timeout period.

10. A method according to claim 9 , wherein the act of interfacing with a manipulation tool library comprises interfacing with the target software product using a window-type interface and an accessibility interface.

11. A method according to claim 9 , wherein one of the selectable search strategies is an SQL-type query string search strategy that involves comparing a specified string with information associated with the user interface object.

12. A method for interacting with a target software product having user interface functionality, comprising:

executing a script that involves interaction with the user interface functionality of the target software product; and

interfacing with a manipulation tool library to carry out at least two functions specified in the script, wherein the at least two functions include:

event handling for blocking the execution of the script until a specified event has occurred within a specified timeout period and generating an error message if the specified event does not occur within the specified timeout period; and

executing a callback function upon the occurrence of a second specified event caused by a firing of a user interface object, the callback function executing a prescribed function upon the occurrence of the second specified event, wherein another function of the manipulation tool library comprises searching using a flag-based attribute search strategy that involves comparing a specified attribute value and qualifying flag information with information associated with the user interface object, wherein the flag information is configured to provide a filtering function in a search.

13. A method according to claim 12 , wherein the specified event pertains to a firing of a specified user interface object.

14. A method according to claim 12 , wherein the act of interfacing comprises interfacing with the target software product using a window-type interface and an accessibility interface.

15. A method according to claim 12 , wherein another function of the manipulation tool library comprises searching using an SQL-type query string search strategy that involves comparing a specified string with information associated with the user interface object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →