- Overview
- UI Automation
- About the UI Automation activity package
- Applications and technologies automated with UI Automation
- Project compatibility
- UI-ANA-016 - Pull Open Browser URL
- UI-ANA-017 - ContinueOnError True
- UI-ANA-018 - List OCR/Image Activities
- UI-DBP-006 - Container Usage
- UI-DBP-013 - Excel Automation Misuse
- UI-DBP-030 - Forbidden Variables Usage In Selectors
- UI-DBP-031 - Activity verification
- UI-PRR-001 - Simulate Click
- UI-PRR-002 - Simulate Type
- UI-PRR-003 - Open Application Misuse
- UI-PRR-004 - Hardcoded Delays
- UI-REL-001 - Large Idx in Selectors
- UI-SEC-004 - Selector Email Data
- UI-SEC-010 - App/Url Restrictions
- UI-USG-011 - Non Allowed Attributes
- UX-SEC-010 - App/Url Restrictions
- UX-DBP-029 - Insecure Password Use
- UI-PST-001 - Audit Log Level in Project Settings
- UiPath Browser Migration Tool
- Clipping region
- Computer Vision Recorder
- Activities index
- Activate
- Anchor Base
- Attach Browser
- Attach Window
- Block User Input
- Callout
- Check
- Click
- Click Image
- Click Image Trigger
- Click OCR Text
- Click Text
- Click Trigger
- Close Application
- Close Tab
- Close Window
- Context Aware Anchor
- Copy Selected Text
- Element Attribute Change Trigger
- Element Exists
- Element Scope
- Element State Change Trigger
- Export UI Tree
- Extract Structured Data
- Find Children
- Find Element
- Find Image
- Find Image Matches
- Find OCR Text Position
- Find Relative Element
- Find Text Position
- Get Active Window
- Get Ancestor
- Get Attribute
- Get Event Info
- Get From Clipboard
- Get Full Text
- Get OCR Text
- Get Password
- Get Position
- Get Source Element
- Get Text
- Get Visible Text
- Go Back
- Go Forward
- Go Home
- Google Cloud Vision OCR
- Hide Window
- Highlight
- Hotkey Trigger
- Hover
- Hover Image
- Hover OCR Text
- Hover Text
- Image Exists
- Indicate On Screen
- Inject .NET Code
- Inject Js Script
- Invoke ActiveX Method
- Key Press Trigger
- Load Image
- Maximize Window
- Microsoft Azure Computer Vision OCR
- Microsoft OCR
- Microsoft Project Oxford Online OCR
- Minimize Window
- Monitor Events
- Mouse Trigger
- Move Window
- Navigate To
- OCR Text Exists
- On Element Appear
- On Element Vanish
- On Image Appear
- On Image Vanish
- Open Application
- Open Browser
- Refresh Browser
- Replay User Event
- Restore Window
- Save Image
- Select Item
- Select Multiple Items
- Send Hotkey
- Set Clipping Region
- Set Focus
- Set Text
- Set To Clipboard
- Set Web Attribute
- Show Window
- Start Process
- System Trigger
- Take Screenshot
- Tesseract OCR
- Text Exists
- Tooltip
- Type Into
- Type Secure Text
- Use Foreground
- Wait Attribute
- Wait Element Vanish
- Wait Image Vanish
- Application Event Trigger
- Block User Input
- Check/Uncheck
- Check App State
- Check Element
- Click
- Click Event Trigger
- Drag and Drop
- Extract Table Data
- Find Elements
- For Each UI Element
- Get Browser Data
- Get Clipboard
- Get Text
- Get URL
- Go to URL
- Highlight
- Hover
- Inject Js Script
- Keyboard Shortcuts
- Keypress Event Trigger
- Mouse Scroll
- Navigate Browser
- Select Item
- Set Browser Data
- Set Clipboard
- Set Runtime Browser
- Set Focus
- Set Text
- Take Screenshot
- Type Into
- Unblock User Input
- Use Application/Browser
- Window Operation
- Perform browser search and retrieve results using UI Automation APIs
- Web Browsing
- Find Images
- Click Images
- Trigger and Monitor Events
- Create and Override Files
- HTML Pages: Extract and Manipulate Information
- Window Manipulation
- Automated List Selection
- Find and Manipulate Window Elements
- Manage Text Automation
- Load and Process Images
- Manage Mouse Activated Actions
- Automate Application Runtime
- Automated Run of a Local Application
- Browser Navigation
- Web Automation
- Trigger Scope Example
- Enable UI Automation support in DevExpress
- Computer Vision Local Server
- Mobile Automation
- Release notes
- About the mobile device automation architecture
- Project compatibility
- Get Log Types
- Get Logs
- Get Page Source
- Get Device Orientation
- Get Session Identifier
- Install App
- Manage Current App
- Manage Other App
- Open DeepLink
- Open URL
- Mobile Device Connection
- Directional Swipe
- Draw Pattern
- Positional Swipe
- Press Hardware Button
- Set Device Orientation
- Take Screenshot
- Take Screenshot Part
- Element Exists
- Execute Command
- Get Attribute
- Get Selected Item
- Get Text
- Set Selected Item
- Set Text
- Swipe
- Tap
- Type Text
- Terminal
- Release notes
- About the Terminal activity package
- Project compatibility
- Best practices
- Find Text
- Get Color at Position
- Get Cursor Position
- Get Field
- Get Field at Position
- Get Screen Area
- Get Text
- Get Text at Position
- Move Cursor
- Move Cursor to Text
- Send Control Key
- Send Keys
- Send Keys Secure
- Set Field
- Set Field at Position
- Terminal Session
- Wait Field Text
- Wait Screen Ready
- Wait Screen Text
- Wait Text at Position

UI Automation activities
Fuzzy Search
About fuzzy search
A selector contains a top-level tag which references the target window or browser tab. It holds attributes like title, process name, URL, window name, and others, which help you properly identify the elements you want to use in your automation projects.
Often enough, top-level tag values are subject to dynamic changes because the target application rewrites them based on your actions. For example, a web page title can change during the automation process, which makes corresponding selector invalid.
In this regard, the selector’s fuzzy search capabilities enable you locate strings based on a pattern, rather than on an exact match to your input. This results in a more flexible method of identifying elements and validates selectors according to multiple attributes, even if some are prone to change during the automation process.
How fuzzy search works
To use the fuzzy search capabilities, a couple of matching options need to be included in the top-level tag of the target selector, as follows:
| Option | Description |
|---|---|
|
| Allows you to specify the target search tag, determined by the <tag_name> value. |
|
|
|
If more elements are found, the target action is executed on the first one.
Supported selector types
Currently, the fuzzy search is supported by the following selector types:
| Selector type | Support |
|---|---|
<wnd> | ✅ |
<html> | ✅ |
<webctrl> | ✅ |
<java> | ✅ |
<ctrl> | ✅ |
<uia> | ✅ |
<sap> | ✅ |
<rdp> | ✅ |
<silverlight> | ❌ |
Tags which identify a process name. Example: <html app="firefox.exe">. | ❌ |
Adding check:text="example" in a fuzzy selector checks if the target element contains the specified text. For example, adding check:text="Options" to a fuzzy selector checks if the target element contains the Options text.
Examples of using fuzzy search
Fuzzy search can be used to identify nearly any type of attribute in the top-level tags of selectors. In the following examples, we aim to build valid selectors with attributes which is incorrectly spelled:
A. Using a high fuzziness level
Let's assume we want to build a selector to identify the W3Schools Online Web Tutorials <title> attribute. For the purpose of our example, the attribute is incorrectly spelled, thus making the selector invalid.
<html app='firefox.exe' title='WEScho0ls Online Web Tutorials' />
<html app='firefox.exe' title='WEScho0ls Online Web Tutorials' />
To fix this, we need to introduce fuzzy search inside the <html> tag. Since the attribute of interest is <title>, the <tag_name> of our fuzzy search expression needs to have the matching:title=fuzzy form. The mistake in our <title> attribute is small, so we can use a fuzziness level closer to 1. The following selector is generated, which returns the correct <title> attribute, which, in this case is W3Schools Online Web Tutorials:
<html app='firefox.exe' title='WEScho0ls Online Web Tutorials'
matching:title='fuzzy' fuzzylevel:title='0.8' />
<html app='firefox.exe' title='WEScho0ls Online Web Tutorials'
matching:title='fuzzy' fuzzylevel:title='0.8' />
B. Using a low fuzziness level
In this second example, we need to build selectors for an <aaname> attribute. The target attribute is Colorpicker, but in our example it is incorrectly spelled Clorker. Needless to say that, with an incorrectly spelled attribute, our selector is invalid, and looks something like this:
<html title='W3Schools Online Web Tutorials' />
<webctrl aaname='Clorker' parentid='main' tag='IMG' />
<html title='W3Schools Online Web Tutorials' />
<webctrl aaname='Clorker' parentid='main' tag='IMG' />
The fuzzy search needs to be included in the <webctrl> tag. In this case, our target is <aaname>. Since there are more mistakes in the spelling of our target, we reduce the fuzziness level closer to 0, so that there are greater chances of accurate detection. The following selector is generated, which returns the correct <aaname> attribute, which, in this case is Colorpicker:
<html title='W3Schools Online Web Tutorials' />
<webctrl aaname='Colorker' parentid='main' tag='IMG' matching:aaname='fuzzy' fuzzylevel:aaname='0.4' />
<html title='W3Schools Online Web Tutorials' />
<webctrl aaname='Colorker' parentid='main' tag='IMG' matching:aaname='fuzzy' fuzzylevel:aaname='0.4' />