Документация 0.4 Студия
Пикер элементов
Чтобы нажать кнопку или ввести текст, робот должен найти элемент: в окне программы Windows — по селектору Windows (путь от окна к элементу), на веб-странице — по селектору страницы (CSS, текст, роль). Селектор Windows указывается пикером прямо на экране, селектор страницы пишется в поле.
Элемент окна Windows #
У действий „Windows“ (ui.click, ui.typeInto, ui.getText и других) в свойствах
шага есть поле селектора и кнопки «Указать на экране», «Подсветить» и «Изменить».

Как указать элемент:
- Откройте программу и нужное окно.
- В свойствах шага нажмите «Указать на экране». Окно студии свернётся.
- Наведите курсор на элемент: вокруг него появится красная рамка, рядом — подсказка: тип элемента, имя и
идентификатор (
Button · Отправить · btnSend). - Нажмите Ctrl — элемент выбран, студия вернётся с готовым селектором. Esc — отмена. Через 2 минуты без выбора пикер закрывается сам.
Пикер сам подбирает надёжный селектор: окно программы (имя процесса, тип и заголовок окна) и элемент (тип и
идентификатор automationId, если он есть, иначе имя или класс). Если такой путь находит несколько элементов, пикер
добавляет промежуточный элемент с именем (до трёх) или номер совпадения index.
«Подсветить» ищет элемент по селектору, обводит его красной рамкой на 2 секунды и сообщает, сколько элементов найдено. Так селектор проверяют без запуска процесса — например, после обновления программы.
Как устроен селектор #
В поле селектор показан коротко: Окно "Tulpar Test App" › Button btnSend. «Изменить» открывает его целиком:

{
"kind": "uia",
"path": [
{ "processName": "Tulpar.TestApp", "controlType": "Window", "name": "Tulpar Test App" },
{ "controlType": "Button", "automationId": "btnSend" }
]
}
Каждый элемент пути (сегмент) описывается атрибутами — нужен хотя бы один:
| Атрибут | Что значит |
|---|---|
processName |
Имя процесса программы без .exe; только в первом сегменте |
controlType |
Тип элемента: Window, Button, Edit, Text, ComboBox, CheckBox, List, ListItem, DataItem, Pane, Document, MenuItem, TabItem, Hyperlink … |
automationId |
Идентификатор элемента, заданный разработчиком программы, — самый надёжный атрибут |
name |
Видимое имя: текст кнопки, заголовок окна, подпись |
className |
Класс окна Windows |
index |
Номер среди совпадений, с 1 — если других различий нет |
Как ищется элемент: первый сегмент — среди окон верхнего уровня, каждый следующий — среди всех вложенных элементов
предыдущего. Сравнение без учёта регистра; в тексте атрибутов допускаются * (любые символы) и ? (один символ)
и подстановки {{ }}. Элемент ищется до таймаута шага, каждые 200 мс; если поиск занял больше 2 секунд, в лог
пишется совет уточнить селектор.
Советы:
- Заголовок окна часто меняется (
Документ1 - Word,Счёт № 15 — 1С) — оставьте постоянную часть:* - Word. - Имя, которое зависит от данных, подставьте из переменной:
Счёт № {{ invoiceNumber }}*. indexиспользуйте в последнюю очередь: порядок элементов может измениться.- Если робот и программа запущены с разными правами (программа — от администратора), элементы программы могут быть недоступны: запускайте их одинаково.
Элемент веб-страницы #
У действий „Браузер“ (browser.click, browser.typeInto, browser.getText и других)
селектор — текстовое поле. Пикера страниц в версии 0.4 нет: селектор пишется вручную.

| Вид | Пример | Когда удобен |
|---|---|---|
| CSS | #submit, .btn-primary, input[name="phone"] |
У элемента есть id или постоянный класс |
| Текст | text=Отправить |
Кнопки и ссылки с постоянной надписью |
| Роль | role=button[name="Отправить"], role=textbox[name="Телефон"] |
Элементы с подписью — так их видят программы чтения экрана |
| XPath | xpath=//table[@id="orders"]//tr[2]/td[1] |
Сложная структура, таблицы |
| Цепочка | #orders >> text=П-0001, .row >> nth=0 |
Уточнить: внутри элемента, первый из найденных |
Как найти селектор: откройте страницу в Edge, щёлкните по элементу правой кнопкой → „Проверить“ (инструменты
разработчика, F12). У выделенного элемента посмотрите id, name или текст; правой кнопкой по нему в коде страницы →
„Копировать“ → „Копировать селектор“ даёт готовый CSS-селектор. Проверить селектор можно там же: в консоли
document.querySelectorAll('#submit') должен найти один элемент.
Если селектор находит несколько элементов, действие завершается ошибкой — уточните селектор или добавьте
>> nth=0. Значения переменных подставляются через {{ }}: text={{ item.reference }}.