IP Library Granted Patent US 12,638,819
Granted Patent B2
US 12,638,819 · App. 16/871,696 · Granted May 26, 2026

Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation

Inventors: Dan Munteanu (Bucharest, RO); Ion Miron (Bucharest, RO)
Assignee: UiPath, Inc.
G05B19/0426G05B13/0275G06F3/04815G06F3/04842G06F8/34G06F16/2428G06F16/3329G06F16/535G06F18/22G06N7/02G06F3/0484G06F2209/545H04Q2213/13525
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 12,638,819
App. No.
16/871,696
Filed
May 11, 2020
Granted
May 26, 2026
Kind
B2
Art Unit
3627
USPC
715/762
Abstract

Graphical element search technique selection, fuzzy logic selection for anchors and targets, and hierarchical graphical element identification for robotic process automation (RPA) are disclosed. The fuzzy logic selection of anchors and targets may be part of a larger, tiered, or hierarchical process for identifying graphical elements in the UI. When a selector for a UI element is not found with at least a confidence threshold, similar elements potentially corresponding to the selector for a UI element target may be searched based on fuzzy matching of the target and corresponding anchor(s). Geometric matching may also be employed between the target UI element and its respective anchor(s). The combination of fuzzy matching and geometric matching may allow for more flexible and accurate identification of the exact selector with which an RPA robot is attempting to interact.

Claims (50)

1 . A computer-implemented method for identifying a visible target user interface (UI) element associated with an activity of a robotic process automation (RPA) workflow, comprising:

executing a selector search for the target UI element at runtime to identify the visible target UI element, by an RPA robot implementing the RPA workflow;

responsive to the visible target UI element not being found, executing at least two of a fuzzy selector search, a target and anchor search, a fuzzy target and anchor search, image matching, text matching, computer vision (CV) matching, or a combination thereof, in parallel to identify the target UI element, by the RPA robot; and

performing an interaction with the identified target UI element, by the RPA robot, based on the activity of the RPA workflow.

2 . The computer-implemented method of claim 1 , wherein

the execution of the at least two of the fuzzy selector search, the target and anchor search, the fuzzy target and anchor search, the image matching, the text matching, and the CV matching are performed based on an order in the activity of the RPA workflow.

3 . The computer-implemented method of claim 1 , wherein

the fuzzy target and anchor search is performed by the RPA robot, and

the fuzzy target and anchor search comprises determining the target and at least one anchor using fuzzy matching and performing geometric matching on the target and the at least one anchor determined using the fuzzy matching.

4 . The computer-implemented method of claim 3 , wherein

the fuzzy target and anchor search comprises calling a driver,

a single driver call is made for the target and the at least one anchor, and

the driver obtains all candidates for the target and the at least one anchor in a single traversal of a UI a tree for an application associated with the UI.

5 . A computer-implemented method for identifying a target user interface (UI) element associated with an activity of a robotic process automation (RPA) workflow, comprising:

executing in parallel a selector search and at least two of a fuzzy selector search, a target and anchor search, a fuzzy target and anchor search, image matching, text matching, and computer vision (CV) matching for the target UI element at runtime, by an RPA robot configured to implement the RPA workflow;

selecting a best result from the selector search and the at least one of the fuzzy selector search, the target and anchor search, the fuzzy target and anchor search, the image matching, the text matching, and the CV matching based on validation scores, by the RPA robot, to identify the target UI element; and

performing an interaction with the identified target UI element, by the RPA robot, based on the activity of the RPA workflow.

6 . The computer-implemented method of claim 5 , wherein

the fuzzy target and anchor search is performed by the RPA robot, and

the fuzzy target and anchor search comprises determining the target and at least one anchor using fuzzy matching and performing geometric matching on the target and the at least one anchor determined using the fuzzy matching.

7 . The computer-implemented method of claim 1 , wherein after performing the interaction with the identified target UI element based on the activity of the RPA workflow, the method further comprises:

proceeding to a next activity in the RPA workflow that requires identification of another target UI element; and

repeating the method of claim 1 for the other target UI element.

8 . The computer-implemented method of claim 1 , wherein a UI action of the activity comprises clicking a button, entering text in a text field, selecting a menu item, opening a window, closing the window, or submitting a form.

9 . The computer-implemented method of claim 8 , wherein

the fuzzy target and anchor search comprises calling a driver,

a single driver call is made for the target and the at least one anchor, and

the driver obtains all candidates for the target and the at least one anchor in a single traversal of a UI a tree for an application associated with the UI.

10 . The computer-implemented method of claim 5 , wherein after performing the interaction with the identified target UI element based on the activity of the RPA workflow, the method further comprises:

proceeding to a next activity in the RPA workflow that requires identification of another target UI element; and

repeating the method of claim 5 for the other target UI element.

11 . The computer-implemented method of claim 5 , wherein a UI action of the activity comprises clicking a button, entering text in a text field, selecting a menu item, opening a window, closing the window, or submitting a form.

12 . A non-transitory computer-readable medium storing a computer program for identifying a target user interface (UI) element associated with an activity of a robotic process automation (RPA) workflow, the computer program configured to cause at least one processor to:

execute a selector search for the target UI element at runtime to identify the target UI element, and responsive to the target UI element not being found, execute at least one other search algorithm to identify the target UI element and perform an interaction with the identified target UI element based on the activity of the RPA workflow; or

execute the selector search and the at least one other search algorithm, select a best result from the selector search and the at least one other search algorithm based on validation scores to identify the target UI element, and perform the interaction with the identified target UI element based on the activity of the RPA workflow, wherein

the at least one other search algorithm comprises a fuzzy selector search, a target and anchor search, a fuzzy target and anchor search, image matching, text matching, computer vision (CV) matching, or a combination thereof, wherein

the at least one other search algorithm comprises at least two search algorithms, and

the at least two search algorithms are performed in parallel.

13 . The non-transitory computer-readable medium of claim 12 , wherein two or more of the fuzzy selector search, the target and anchor search, the fuzzy target and anchor search, the image matching, the text matching, and the CV matching are performed based on an order in the activity of the RPA workflow.

14 . The non-transitory computer-readable medium of claim 12 , wherein the fuzzy target and anchor search comprises determining the target and at least one anchor using fuzzy matching and performing geometric matching on the target and the at least one anchor determined using the fuzzy matching.

15 . The non-transitory computer-readable medium of claim 14 , wherein

the fuzzy target and anchor search comprises calling a driver,

a single driver call is made for the target and the at least one anchor, and

the driver obtains all candidates for the target and the at least one anchor in a single traversal of a UI a tree for an application associated with the UI.

16 . The non-transitory computer-readable medium of claim 12 , wherein after performing the interaction with the identified target UI element based on the activity of the RPA workflow, the method further comprises:

proceeding to a next activity in the RPA workflow that requires identification of another target UI element; and

repeating the steps of claim 12 for the other target UI element.

17 . The non-transitory computer-readable medium of claim 16 , wherein responsive to all activities in the RPA workflow having been completed, the computer program ends.

18 . The non-transitory computer-readable medium of claim 12 , wherein a UI action of the activity comprises clicking a button, entering text in a text field, selecting a menu item, opening a window, closing the window, or submitting a form.

19 . The non-transitory computer-readable medium of claim 12 , wherein the computer program is an RPA robot.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2020
From: MUNTEANU, DAN; MIRON, ION
To: UIPATH, INC.
Reel/Frame 052626/0304 →
Continuity (1)
Related Publication 20210349430A1 · Nov 11, 2021
References Cited (84)
US 8768041B2 · Shirkhodaie · 2014 [cited by examiner]
US 9014430B2 · Hodder · 2015 [cited by examiner]
US 9050035B2 · Yao · 2015 [cited by examiner]
US 9075918B1 · Chandra et al. · 2015 [cited by applicant]
US 9314157B2 · Yao · 2016 [cited by examiner]
US 9424167B2 · Lee et al. · 2016 [cited by applicant]
US 9555544B2 · Bataller · 2017 [cited by examiner]
US 9600401B1 · Haischt et al. · 2017 [cited by applicant]
US 9846634B2 · Ji · 2017 [cited by examiner]
US 9886174B2 · Clark · 2018 [cited by examiner]
US 9965139B2 · Nychis et al. · 2018 [cited by applicant]
US 10096033B2 · Heath · 2018 [cited by examiner]
US 10261658B2 · Zhang et al. · 2019 [cited by applicant]
US 10303349B2 · Lanzkron · 2019 [cited by examiner]
US 10489461B2 · Bhattacharjee · 2019 [cited by examiner]
US 10817314B1 · Ganesan · 2020 [cited by examiner]
US 10877782B2 · Zohar · 2020 [cited by examiner]
US 10878531B2 · Viet · 2020 [cited by examiner]
US 10885423B1 · Voicu · 2021 [cited by examiner]
US 10956295B1 · Long · 2021 [cited by examiner]
US 10970098B2 · Karoliwal · 2021 [cited by examiner]
US 11117259B2 · Hall · 2021 [cited by examiner]
US 11176443B1 · Selva · 2021 [cited by examiner]
US 11249729B2 · Voicu · 2022 [cited by examiner]
US 11281936B2 · Ma · 2022 [cited by examiner]
US 11327826B1 · Shama · 2022 [cited by examiner]
US 11334828B2 · Negulescu · 2022 [cited by examiner]
US 11366439B2 · Dubey · 2022 [cited by examiner]
US 11372517B2 · Munteanu · 2022 [cited by examiner]
US 11372650B2 · Perera · 2022 [cited by examiner]
US 11403118B2 · Munteanu · 2022 [cited by examiner]
US 11403201B2 · Balasubramanian · 2022 [cited by examiner]
US 11461164B2 · Dines · 2022 [cited by examiner]
US 11481304B1 · Kakhandiki · 2022 [cited by applicant]
US 11500762B2 · Hamid · 2022 [cited by examiner]
US 11720580B1 · Hirsch et al. · 2023 [cited by applicant]
US 12164934B1 · Damarapati et al. · 2024 [cited by applicant]
US 20080086700A1 · Rodriguez et al. · 2008 [cited by applicant]
US 20140047365A1 · Clark et al. · 2014 [cited by applicant]
US 20140253559A1 · Li et al. · 2014 [cited by applicant]
US 20150074609A1 · Lanzkron et al. · 2015 [cited by applicant]
US 20150378876A1 · Ji et al. · 2015 [cited by applicant]
US 20170177743A1 · Bhattacharjee et al. · 2017 [cited by applicant]
US 20180157386A1 · Su · 2018 [cited by applicant]
US 20180173614A1 · Gong et al. · 2018 [cited by applicant]
US 20180189170A1 · Dwarakanath et al. · 2018 [cited by applicant]
US 20180204111A1 · Zadeh · 2018 [cited by examiner]
US 20180217722A1 · Venkataraman · 2018 [cited by examiner]
US 20180322004A1 · Jain et al. · 2018 [cited by applicant]
US 20180370029A1 · Hall · 2018 [cited by examiner]
US 20190034114A1 · Natarajan et al. · 2019 [cited by applicant]
US 20190050323A1 · Kogan et al. · 2019 [cited by applicant]
US 20190066013A1 · Gupta · 2019 [cited by examiner]
US 20190141125A1 · Ogrinz et al. · 2019 [cited by applicant]
US 20200103244A1 · Cella · 2020 [cited by applicant]
US 20200206920A1 · Ma et al. · 2020 [cited by applicant]
US 20200401431A1 · Rashid et al. · 2020 [cited by applicant]
US 20210042126A1 · Perera et al. · 2021 [cited by applicant]
US 20210109717A1 · Voicu et al. · 2021 [cited by applicant]
US 20210122051A1 · An et al. · 2021 [cited by applicant]
US 20210141619A1 · Magureanu · 2021 [cited by examiner]
US 20210158256A1 · Negulescu · 2021 [cited by applicant]
US 20210252702A1 · Hall · 2021 [cited by examiner]
US 20210312299A1 · Segal · 2021 [cited by examiner]
US 20210326245A1 · Arbon · 2021 [cited by examiner]
CN 111126781A · 2020 [cited by applicant]
CN 114424167A · 2022 [cited by applicant]
CN 114556393A · 2022 [cited by applicant]
EP 3112965A1 · 2017 [cited by applicant]
EP 4242848A1 · 2023 [cited by applicant]
EP 4575830A1 · 2025 [cited by applicant]
KR 1020140043689A · 2014 [cited by applicant]
TW I744421B · 2021 [cited by applicant]
Nachar, Breaking down Captcha using edge corners and fuzzy logic segmentation/recognition technique, Aug. 10, 2015, Security and Communication Networks, vol. 8, Issue 18, pp. 3995-4012. (Year: 2015). [cited by examiner]
Office Action issued in Korean Application No. 10-2020-7028119 on Nov. 30, 2021. [cited by applicant]
International Search Report and Written Opinion of the International Search Authority issued for PCT Application No. PCT/US2020/052149 on Feb. 4, 2021. [cited by applicant]
European Search Report issued in EP Application No. 20199161 on Mar. 16, 2021. [cited by applicant]
Maciej Kuzmicz, “Fuzzy string matching for your selectors, ” availabe at https://forum.uipath.com/t/featureblog-19-10-fuzzy-string-matching-for-your-selectors/159036 (Oct. 1, 2019). [cited by applicant]
Param Kahlon, “UiPath 2020.3 Monthly Update,” available at https://www.uipath.com/blog/march-2020-uipath-monthly-update (Mar. 23, 2021). [cited by applicant]
Quality Thought UiPath Material available at https://www.qualitythought.in/wp-content/uploads/2019/07/UI-PATH-MATERIAL.pdf (Jul. 31, 2019). [cited by applicant]
Tom Yeh et al., “Sikuli: Using GUI Screenshots for Search and Automation,” Proceedings of the 22nd Annual ACM Symposium on User Interface Software and Technology: Victoria, British Columbia, Oct. 4-7, 2009, ACM, New Yor… [cited by applicant]
Notice of Allowance issued in Korean Application No. 10-2020-7028119 on Jul. 28, 2022. [cited by applicant]
Examination Report issued in EP Application No. 20199161.9 on Jul. 11, 2023. [cited by applicant]
Steven Paul Sax, “Notice of Allowance”, issued Jan. 13, 2026, U.S. Appl. No. 18/160,904. [cited by applicant]