About Selectors

To automate specific actions in the user interface, you are required to interact with various windows, buttons, drop-down lists and many others. Most RPA products do this by relying on the screen position of UI elements, a method that is not at all dependable.

To overcome this problem, UiPath Studio uses what we call selectors. These store the attributes of a graphical user interface element and its parents, in the shape of an XML fragment.

Most of the times, selectors are automatically generated by Studio and do not require further input from you, especially if the apps you are trying to automate have a static user interface.

However, some software programs have changing layouts and attribute nodes with volatile values, such as some web-apps. UiPath Studio cannot predict these changes and, therefore, you might have to manually generate some selectors.

A selector has the following structure:

<node_1/><node_2/>...<node_N/>

The last node represents the GUI element that interests you, and all the previous ones represent the parents of that element. <node_1> is usually referred to as a root node, and represents the top window of the app.

Each node has one or more attributes that help you correctly identify a specific level of the selected application.

Each node has the following format:

<ui_system attr_name_1='attr_value_1' ... attr_name_N='attr_value_N'/>

Every attribute has an assigned value. It is important to pick attributes with a constant value. If the value of an attribute changes each time the app is started, then the selector will not be able to correctly identify the element.

Selectors are stored in the Properties panel of activities, under Input > Target > Selector. All activities related to graphical elements have this property.

The Selector Editor window enables you to see the automatically-generated selector and edit it and its attributes. To access this window, in the Workflow Designer panel, click the Options Options button button in the body of an activity and select Edit Selector.

This can also be done by using the Ellipsis image alt text button next to the Selector field, in the Properties panel.

Option
Description

Validate

The button shows the status of the selector by checking the validity of the selector definition and the visibility of the target element on the screen.
The Validate button has three states:

  • image alt text Selector is being validated
  • image alt text Valid selector
  • image alt text Invalid selector
  • image alt text Modified selector, revalidate

The button is correlated with UI Explorer validation states.

Indicate Element

Indicate a new UI element to replace the previous one.

Repair

Enables you to re-indicate the same target UI element and repair the selector. This operation does not completely replace the previous selector. The button is available only when the selector is invalid.

Highlight

Brings the target element in the foreground. The highlight stays on until the option is disabled with a click. The button is enabled only if the selector is valid.

Edit Attributes

Contains all the application components needed to identify the target application (a window, a button etc.). This section is editable.

Edit Selector

Holds the actual selector. This section is editable.

Open in UI Explorer

Launches the UI Explorer. The option is enabled only for valid selectors.

Note:

In some situations, when Studio and the targeted application are opened with different elevated privileges, the selector might not work. We recommend to always open both applications with the same privileges.

Supported Tags and Attributes

The following tables present the compatibility between tags and attributes used to build selectors and the selector capability:

Note:

Selectors generated for Java applications which contain multiple WND tags cannot be used with events monitoring.

WND

Attribute
Fuzzy
RegEx
Case-Sensitive

app

check_mark

check_mark

check_mark

cls

check_mark

check_mark

check_mark

title

check_mark

check_mark

check_mark

aaname

check_mark

check_mark

check_mark

ctrlname (WinForms)

check_mark

check_mark

check_mark

ctrlid (WinForms)

check_mark

check_mark

check_mark

idx

no_right

no_right

no_right

tid

no_right

no_right

no_right

pid

no_right

no_right

no_right

isremoteapp

no_right

no_right

no_right

aastate

check_mark

check_mark

check_mark

sapClient (SAP)

check_mark

check_mark

check_mark

sapLanguage (SAP)

check_mark

check_mark

check_mark

sapProgram (SAP)

check_mark

check_mark

check_mark

sapScreen (SAP)

no_right

no_right

no_right

sapSession (SAP)

no_right

no_right

no_right

sapSysName (SAP)

check_mark

check_mark

check_mark

sapSysNumber (SAP)

no_right

no_right

no_right

sapSysSessionId (SAP)

check_mark

check_mark

check_mark

sapTransaction (SAP)

check_mark

check_mark

check_mark

sapUser (SAP)

check_mark

check_mark

check_mark

HTML

Attribute
Fuzzy
RegEx
Case-Sensitive

url

check_mark

check_mark

check_mark

htmlwindowname

check_mark

check_mark

check_mark

title

check_mark

check_mark

check_mark

app

no_right

no_right

no_right

idx

no_right

no_right

no_right

pid

no_right

no_right

no_right

tid

no_right

no_right

no_right

excludehwnd

no_right

no_right

no_right

bsid (Browser Session ID)

no_right

no_right

no_right

isremoteapp

no_right

no_right

no_right

WEBCTRL

The tag and idx attributes use string values. All other WEBCTRL attributes have dynamic values.

Attribute
Fuzzy
RegEx
Case-Sensitive

tag

no_right

no_right

no_right

idx

check_mark

check_mark

check_mark

aaname

check_mark

check_mark

check_mark

name

check_mark

check_mark

check_mark

id

check_mark

check_mark

check_mark

parentid

check_mark

check_mark

check_mark

class

check_mark

check_mark

check_mark

css-selector

no_right

no_right

no_right

innertext

check_mark

check_mark

check_mark

isleaf

check_mark

check_mark

check_mark

parentclass

check_mark

check_mark

check_mark

parentname

check_mark

check_mark

check_mark

title

check_mark

check_mark

check_mark

src

check_mark

check_mark

check_mark

href

check_mark

check_mark

check_mark

tableCol

check_mark

check_mark

check_mark

tableRow

check_mark

check_mark

check_mark

colName

check_mark

check_mark

check_mark

rowName

check_mark

check_mark

check_mark

CTRL

Attribute
Fuzzy
RegEx
Case-Sensitive

role

check_mark

check_mark

check_mark

name

check_mark

check_mark

check_mark

automationid

check_mark

check_mark

check_mark

labeledby

check_mark

check_mark

check_mark

aastate

check_mark

check_mark

check_mark

virtualname

check_mark

check_mark

check_mark

text

check_mark

check_mark

check_mark

rowName

check_mark

check_mark

check_mark

idx

no_right

no_right

no_right

UIA

Attribute
Fuzzy
RegEx
Case-Sensitive

accelkey (Accelerator Key)

check_mark

check_mark

check_mark

acskey (Access Key)

check_mark

check_mark

check_mark

automationid

check_mark

check_mark

check_mark

cls

check_mark

check_mark

check_mark

helpText

check_mark

check_mark

check_mark

legacyAccHelp (Legacy Accessible Help)

check_mark

check_mark

check_mark

enabled

check_mark

check_mark

check_mark

kbfocus (Is Keyboard Focusable)

check_mark

check_mark

check_mark

ispwd (Is Password)

check_mark

check_mark

check_mark

itemstatus

check_mark

check_mark

check_mark

itemtype

check_mark

check_mark

check_mark

rtid (Runtime ID)

check_mark

check_mark

check_mark

role

check_mark

check_mark

check_mark

name

check_mark

check_mark

check_mark

pid

check_mark

check_mark

check_mark

tableRow

no_right

no_right

no_right

tableCol

no_right

no_right

no_right

rowName

check_mark

check_mark

check_mark

colName

check_mark

check_mark

check_mark

idx

no_right

no_right

no_right

JAVA

Attribute
Fuzzy
RegEx
Case-Sensitive

role

check_mark

check_mark

check_mark

name

check_mark

check_mark

check_mark

virtualname

check_mark

check_mark

check_mark

javastate

check_mark

check_mark

check_mark

tableRow

no_right

no_right

no_right

tableCol

no_right

no_right

no_right

rowName

check_mark

check_mark

check_mark

colName

check_mark

check_mark

check_mark

idx

no_right

no_right

no_right

SAP

Attribute
Fuzzy
RegEx
Case-Sensitive

id

check_mark

check_mark

check_mark

leafid
This attribute is not exposed in the Attribute panel because it is mutual-exclusive with the id attribute. It can be added manually.

check_mark

check_mark

check_mark

tableRow

no_right

no_right

no_right

tableCol

no_right

no_right

no_right

colName

check_mark

check_mark

check_mark

relpath

check_mark

check_mark

check_mark

itemId

check_mark

check_mark

check_mark

SILVERLIGHT

Please note that the Silverlight tag does not support Fuzzy, RegEx, and Case-Sensitive capabilities.

Updated 19 days ago



Did this page help you?