Software robots for programmatically controlling computer programs to perform tasks
First Claim
1. A system, comprising:
- at least one computer hardware processor; and
at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform;
automatically generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program, the at least one application program including a first application program and a second application program, the generating comprising;
identifying active GUI elements of the at least one application program;
identifying relationships among the active GUI elements;
generating, based on the identified active GUI elements and relationships, a first portion of the object hierarchy comprising objects corresponding to active GUI elements of the first application program and a second portion of the object hierarchy comprising objects corresponding to the active GUI elements of the second application program;
accessing a task comprising a sequence of actions;
performing said sequence of actions by;
controlling the first application program to perform a first action in the sequence of actions using the first portion of the object hierarchy;
refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the first action is performed;
controlling the second application program to perform a second action in the sequence of actions using the second portion of the object hierarchy; and
refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the second action is performed; and
during performance of the sequence of actions,generating a visual representation of already-performed actions in the sequence of actions;
storing the visual representation;
determining that an error in performance of the sequence of actions has occurred, the error preventing completing automated performance of the sequence of actions without human intervention; and
when it is determined that the error in performance of the sequence of actions has occurred, providing to a user the visual representation.
6 Assignments
0 Petitions
Accused Products
Abstract
A system comprising at least one computer hardware processor configured to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program; controlling the at least one application program to perform a task comprising a sequence of actions at least in part by using the object hierarchy to invoke actions in the sequence of actions; during performance of the sequence of actions, generating a log of already-performed actions in the sequence of actions; generating contextual information associated with the already performed actions, the contextual information containing at least some information not in the log and the log containing at least some information not in the contextual information; and providing to a user the log and the contextual information.
68 Citations
18 Claims
-
1. A system, comprising:
-
at least one computer hardware processor; and at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform; automatically generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program, the at least one application program including a first application program and a second application program, the generating comprising; identifying active GUI elements of the at least one application program; identifying relationships among the active GUI elements; generating, based on the identified active GUI elements and relationships, a first portion of the object hierarchy comprising objects corresponding to active GUI elements of the first application program and a second portion of the object hierarchy comprising objects corresponding to the active GUI elements of the second application program; accessing a task comprising a sequence of actions; performing said sequence of actions by; controlling the first application program to perform a first action in the sequence of actions using the first portion of the object hierarchy; refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the first action is performed; controlling the second application program to perform a second action in the sequence of actions using the second portion of the object hierarchy; and refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the second action is performed; and during performance of the sequence of actions, generating a visual representation of already-performed actions in the sequence of actions; storing the visual representation; determining that an error in performance of the sequence of actions has occurred, the error preventing completing automated performance of the sequence of actions without human intervention; and when it is determined that the error in performance of the sequence of actions has occurred, providing to a user the visual representation.
-
-
2. The system of claim 1, wherein the processor-executable instructions further cause the at least one computer hardware processor to perform:
following the user taking corrective action responsive to the error, resuming automated performance of the sequence of actions.
-
3. The system of claim 1, wherein controlling the first application program to perform the first action in the sequence of actions comprises:
-
accessing a first object in the object hierarchy corresponding to a first active GUI element of the first application program; and using the first object to cause the first application program to perform the first action in the sequence of actions.
-
-
4. The system of claim 1,
wherein identifying the active GUI elements of the at least one application program is performed based on a hierarchical representation of active GUI elements of the first application program that is provided by a first computer program, and wherein the first computer program is an operating system.
-
5. The system of claim 4, wherein identifying the active GUI elements of the at least one application program comprises obtaining the hierarchical representation from the WINDOWS Automation API.
-
6. The system of claim 4, wherein the first computer program is a JAVA virtual machine.
-
7. The system of claim 1, wherein generating the object hierarchy is performed without user input.
-
8. A method, performed by at least one computer hardware processor, the method comprising:
using the at least one computer hardware processor to perform; automatically generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program, the at least one application program including a first application program and a second application program, the generating comprising; identifying active GUI elements of the at least one application program; identifying relationships among the active GUI elements; generating, based on the identified active GUI elements and relationships, a first portion of the object hierarchy comprising objects corresponding to active GUI elements of the first application program and a second portion of the object hierarchy comprising objects corresponding to the active GUI elements of the second application program; accessing a task comprising a sequence of actions; performing said sequence of actions by; controlling the first application program to perform a first action in the sequence of actions using the first portion of the object hierarchy; refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the first action is performed; controlling the second application program to perform a second action in the sequence of actions using the second portion of the object hierarchy; and refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the second action is performed; and during performance of the sequence of actions, generating a visual representation of already-performed actions in the sequence of actions; storing the visual representation; determining that an error in performance of the sequence of actions has occurred, the error preventing completing automated performance of the sequence of actions without human intervention; and when it is determined that the error in performance of the sequence of actions has occurred, providing to a user the visual representation.
-
9. The method of claim 8, further comprising:
following the user taking corrective action responsive to the error, resuming automated performance of the sequence of actions.
-
10. The method of claim 8, wherein controlling the first application program to perform the first action in the sequence of actions comprises:
-
accessing a first object in the object hierarchy corresponding to a first active GUI element of the first application program; and using the first object to cause the first application program to perform the first action in the sequence of actions.
-
-
11. The method of claim 8,
wherein identifying the active GUI elements of the at least one application program is performed based on a hierarchical representation of active GUI elements of the first application program that is provided by a first computer program, and wherein the first computer program is an operating system.
-
12. The method of claim 11, wherein the first computer program is a JAVA virtual machine.
-
13. The method of claim 8, wherein generating the object hierarchy is performed without user input.
-
14. At least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform:
-
automatically generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program, the at least one application program including a first application program and a second application program, the generating comprising; identifying active GUI elements of the at least one application program; identifying relationships among the active GUI elements; generating, based on the identified active GUI elements and relationships, a first portion of the object hierarchy comprising objects corresponding to active GUI elements of the first application program and a second portion of the object hierarchy comprising objects corresponding to the active GUI elements of the second application program; accessing a task comprising a sequence of actions; performing said sequence of actions by; controlling the first application program to perform a first action in the sequence of actions using the first portion of the object hierarchy; refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the first action is performed; controlling the second application program to perform a second action in the sequence of actions using the second portion of the object hierarchy; and refreshing a portion of the object hierarchy according to any changes in the active GUI elements after the second action is performed; and during performance of the sequence of actions, generating a visual representation of already-performed actions in the sequence of actions; storing the visual representation; determining that an error in performance of the sequence of actions has occurred, the error preventing completing automated performance of the sequence of actions without human intervention; and when it is determined that the error in performance of the sequence of actions has occurred, providing to a user the visual representation.
-
-
15. The at least one non-transitory computer-readable storage medium of claim 14,
wherein identifying the active GUI elements of the at least one application program is performed based on a hierarchical representation of active GUI elements of the first application program that is provided by a first computer program, and wherein the first computer is an operating system.
-
16. The at least one non-transitory computer-readable storage medium of claim 15, wherein the first computer program is a JAVA virtual machine.
-
17. The at least one non-transitory computer-readable storage medium of claim 14, wherein controlling the first application program to perform the first action in the sequence of actions comprises:
-
accessing a first object in the object hierarchy corresponding to a first active GUI element of the first application program; and using the first object to cause the first application program to perform the first action in the sequence of actions.
-
-
18. The at least one non-transitory computer-readable storage medium of claim 14, wherein generating the object hierarchy is performed without user input.
Specification