studio
2021.10
false
- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-026 - Delay Activity Usage
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- ST-USG-005 - Hardcoded Activity Arguments
- ST-USG-009 - Unused Variables
- ST-USG-010 - Unused Dependencies
- ST-USG-014 - Package Restrictions
- ST-USG-020 - Minimum Log Messages
- ST-USG-024 - Unused Saved for Later
- ST-USG-025 - Saved Value Misuse
- ST-USG-026 - Activity Restrictions
- ST-USG-027 - Required Packages
- ST-USG-028 - Restrict Invoke File Templates
- Variables
- Arguments
- Imported Namespaces
- Recording
- UI Elements
- Control Flow
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Automating Citrix Technologies
- RDP Automation
- Salesforce Automation
- SAP Automation
- VMware Horizon Automation
- Logging
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- Test Suite - Studio
- Extensions
- Troubleshooting
Non-Greedy Search
Studio User Guide
Last updated Sep 23, 2024
Non-Greedy Search
The Non-Greedy search makes it possible to identify the target element from a pool of similar applications, matching the attributes you specify. It needs to be included in the top-level tag of a selector.
If a generated selector contains the
idx
attribute, its value is set by default to *
.
Introducing Non-Greedy search in your selectors instructs it to search through all the active windows or browser instances
which match the top-level tags of your selector, and not just the window instances in focus. Non-Greedy search makes use of
the
idx()
attribute, which needs to be included in the top-level tag, as follows:
Option |
Description |
---|---|
|
Searches through all active window instances for the element matching the top-level tag attributes. Please note that the
<idx='1'> option only searches through window instances in focus.
|
Currently, Non-Greedy search is supported for the following selector types:
Selector Type |
Support |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Selectors inside the following containers:
|
|
Universal Windows Platform (UWP) applications |
|
For the purpose of the example, let's assume that we want to build an automation process which interacts with the Windows
10 Calculator app. However, there are two active instances, a Standard Calculator and a Programmer Calculator. We only need
to interact with the Standard Calculator, so we introduce the idx='*' option in the top-level tag, in our case
<wnd>
. The following selector is generated, which returns the Calculator instance we are looking for:
<wnd app='applicationframehost.exe' appid='Microsoft.WindowsCalculator_8wekyb3d8bbwe!App'
title='Calculator' idx='*' />
<uia cls='LandmarkTarget' />
<uia automationid='ProgrammerOperators' cls='NamedContainerAutomationPeer' name='Radix selection' />
<uia automationid='hexButton' cls='RadioButton' name='HexaDecimal 0 ' />
<wnd app='applicationframehost.exe' appid='Microsoft.WindowsCalculator_8wekyb3d8bbwe!App'
title='Calculator' idx='*' />
<uia cls='LandmarkTarget' />
<uia automationid='ProgrammerOperators' cls='NamedContainerAutomationPeer' name='Radix selection' />
<uia automationid='hexButton' cls='RadioButton' name='HexaDecimal 0 ' />