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.
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:
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:
Selectors inside the following containers:
- Open Application
- Open Browsers
- Attach Window
- Attach Browser
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 ' />
Updated about a month ago