Шаблон поиска
Шаблон поиска — это свойство ряда элементов Студии, которое используется для взаимодействия с пользовательским интерфейсом программ. Шаблон позволяет идентифицировать компонент приложения и получить к нему программный доступ.
Свойство Шаблон поиска есть, например, у элемента Клик мышью — с его помощью можно определить кнопку приложения, по которой нужно совершить клик мышью.
Общие сведения
Шаблон представляет собой JSON-файл, который содержит заданный набор свойств для идентификации компонента. Его можно сформировать вручную или автоматически. Автоматический способ является предпочтительным сценарием.
Чтобы автоматически сформировать шаблон, используйте кнопку — она вызывает захват элемента управления в соответствующей категории приложения. Кнопка находится панели элемента или в его свойствах. Пример:

Изменить сформированный шаблон можно двумя способами:
В формате правки JSON-файла. Для открытия файла нажмите в свойстве Шаблон поиска значок многоточия. Пример:
Через окно редактора шаблона. Для открытия графического окна нажмите кнопку
. Окно редактора видоизменяется в зависимости от категории приложения. Примеры интерфейса приведены в подразделе Интерфейс редактора шаблона поиска.
Категории приложений
Поиск элементов управления поддерживается в следующих категориях:
Браузер
Рабочий стол (приложения рабочего стола)
SAP
Подробнее о них см. в разделе Категории приложений.
Интерфейс редактора шаблона
В Студии существует возможность использовать:
старый редактор шаблона поиска;
Установить нужное отображение редактора можно в настройках Студии. Для этого перейдите в раздел Файл > Настройки > Общие > Элементы и определите состояние параметра Использовать старый редактор шаблона поиска по умолчанию.
Описание старого редактора
Интерфейс редактора зависит от категории приложения, в котором необходимо найти компонент. В ситуации, когда категория неизвестна, окно редактора будет выглядеть так:

После выбора категории приложения в окне редактора появятся соответствующие параметры поиска и возможные команды.
Интерфейс редактора шаблона для категорий Браузер и Рабочий стол имеет следующие общие элементы:

Режим — иконка выбора между категориями приложений (Браузер, Рабочий стол, SAP). Также доступен режим Контейнер, о котором подробнее сказано ниже, в подразделе Выбор категории приложений.
Подтип — список значений зависит от выбранного режима. Например, в режиме Рабочий стол потребуется выбрать тип автоматизации, в режиме Браузер - тип браузера.
Заголовок — параметр для поиска. Например, имя главного окна десктоп-приложения в режиме Рабочий стол.
Выбрать компонент
— позволяет автоматически выбрать элемент управления и добавить его в шаблон.
Отобразить компонент
— выделяет элемент управления, который был задан в шаблоне. Используется для проверки правильности шаблона поиска.
Инспектор UI — инструмент для детального исследования интерфейсов приложений. Выводит окно с подробной информацией обо всех открытых приложениях и их компонентах. Позволяет перенести выбранный элемент в шаблон. Подробнее об инструменте см. здесь.
— кнопка для ручного добавления элемента управления в шаблон.
Кроме этого, окно редактора имеет две таблицы: первая - для добавления строк с компонентами, а вторая — для детализации каждой строки:

Процесс поиска
Рассмотрим, как происходит поиск компонента на примере работы с приложением Калькулятор (категория Рабочий стол).
С точки зрения Windows, приложение состоит из ряда компонентов (кнопки, текстовые поля, таблицы), объединенных в дерево. Любая кнопка, которую видит пользователь в интерфейсе программы, будет входить в данное дерево. В свою очередь, каждый компонент обладает набором свойств: они идентифицируют элемент приложения, предоставляют информацию о его специфике и назначении, разбивают все компоненты рабочего стола по тегам и классам.
Для идентификации компонента Primo RPA также использует поиск по его свойствам.
Откроем приложение Калькулятор в Windows. Создадим в Студии новый проект и выполним следующие действия:
Добавим контейнер Присоединиться к приложению. В свойстве Заголовок воспользуемся кнопкой
для быстрого указания названия приложения (Калькулятор).
Поместим в контейнер элемент Клик мышью.
На панели элемента Клик мышью нажмем кнопку Выбрать компонент
— для автоматического добавления компонента в шаблон.

Внимание! Окно с приложением Калькулятор должно быть активным!

Выберем кнопку 5 — появится окно с выбором свойств для идентификации компонента:
В свойстве Index нумерация элементов начинается с 1.

Необходимо выбрать такую комбинацию свойств, которая была бы уникальна и неизменна для данного компонента. Для нашего случая выберем параметры AutomationID, Name (имя элемента автоматизации) и нажмем ОК — селектор создан. Он сохранится в JSON-файле шаблона поиска. Если просмотреть готовый шаблон через окно редактора, он будет выглядеть таким образом:

В дальнейшем, при обработке шаблона, робот возьмет заданные свойства и проанализирует дерево компонентов в поисках позиции, которая имеет указанные значения в параметрах AutomationID и Name. При совпадении значений компонент будет найден.
Автоматический выбор категории приложения
Так, в примере с Калькулятором окно редактора шаблона отображается в режиме Контейнер. Система выбрала данный режим потому, что элемент Клик мышью находится в контейнере Присоединиться к приложению*. Студия также определила, что Калькулятор, к которому установлено подключение в контейнере, относится к приложениям рабочего стола, поэтому в окне редактора отображаются настройки для приложений рабочего стола.
Если бы мы использовали шаблон поиска для компонента веб-приложения, а элемент Клик мышью находился бы в контейнере Присоединиться к браузеру, то параметры поиска в окне редактора соответствовали параметрам для категории приложений Браузер:

Искать во Фреймах
Свойство "Искать во Фреймах" предназначено для поиска элементов внутри HTML-фреймов <frame>
и <iframe>
, но при его использовании существуют следующие ограничения:
1. Защищённые фреймы: Если фрейм защищён настройками браузера, то поиск внутри него невозможен.
2. Разные домены: Поиск не выполняется, если содержимое фрейма загружается с другого домена или хоста. Например:
Работает: (тот же домен).
Не работает: <iframe src="https://externaldomain.com/page.html"> (другой домен).
Для корректной работы убедитесь, что фрейм загружает содержимое с того же домена и не имеет ограничений безопасности.
Подробнее работа с шаблоном поиска в различных категориях описана в разделе Категории приложений.
*Размещение элементов Студии в контейнере экономит ресурсы компьютера и улучшает работу с нагруженными проектами.
Рекомендации при работе с шаблоном поиска
Используйте масштаб рабочего стола 100%. Если масштаб больше или меньше указанного значения, то поиск в браузере может осуществляться некорректно.
При работе с RDP-сессией убедитесь, что:
масштаб удаленного рабочего стола равен 100%;
отключено интеллектуальное изменение размера.
Используйте только один монитор. При работе с несколькими мониторами поиск элемента управления может осуществляться некорректно.
Инспектор UI
Работа с инструментом Инспектор UI подробнее описана здесь.
Last updated
Was this helpful?