Получить связанные элементы Версия 2 (Net)
Группа действий: Windows Подгруппа "Работа с win-элементами"
Описание
Действие проверяет указанный элемент и возвращает связанные с ним элементы (родительские/дочерние/соседние)
Пример на "Блокноте":
Для элемента "Масштаб" соседним элементом будет "Строка состояния". Родительский элемент - "Вид". Дочерние элементы: "Увеличить", "Уменьшить", "Восстановить масштаб по умолчанию".
Иконка действия
Параметры
Входные параметры
Элемент Параметр, который хранит данные Win-элемента, координаты которого будут проверяться
Тип связи Выпадающий список с элементами: "Родительские элементы", "Дочерние элементы", "Соседние элементы"
Если выбрана "Родительский элемент", то в результате вернется коллекция с win-элементами, которые являются родителями для указанного элемента
Если выбрана "Дочерние элементы", то в результате вернется коллекция с win-элементами, которые являются дочерними для указанного элемента
Если выбрано "Соседние элементы", то в результате вернется коллекция с win-элементами, которые являются "соседями" для указанного элемента, то есть имеют общего родителя
Глубина поиска Уровень вложенности связанных элементов, до которого будет производиться поиск. Положительное целое число от 1 до бесконечности
По умолчанию - "1". Глубина не учитывается, если в "Тип связи" выбрано значение "Соседние элементы"
Если глубина, указанная в параметре, больше фактической глубины в приложении, то берутся все элементы до фактической глубины
Тайм-аут Время в миллисекундах, в течение которого будет происходить поиск нужного элемента
Номер окна Порядковый номер окна, с которым будет взаимодействовать действие, если обнаружено несколько окон
При этом действие ищет только те окна, в которых должен находиться элемент согласно его параметрам
Положительное целое число от 1. По умолчанию - "1"
Выходные параметры
Результат Коллекция win-элементов
Настройки
Свойство | Описание | Тип | Пример заполнения | Обязательность заполнения поля | Примечание |
Параметры | |||||
Элемент | Ресурс который хранит данные о выбранном элементе приложения | Robin.WinElement | Да | ||
Тип связи | Тип связи между искомыми элементами и указанным. Можно искать элементы, которые являются родительскими, дочерними или соседними по отношению к указанному элементу. Соседние имеют общий родительский элемент с искомым элементом | Robin.Numeric | Да | Выпадающий список с элементами:
| |
Глубина поиска | Уровень вложенности связанных элементов, до которого будет производиться поиск. Если указанная глубина больше фактической, действие вернет все элементы до фактической глубины Значение по умолчанию - 1. Параметр игнорируется, если в поле "Тип связи" выбрано значение "Соседние элементы" | Robin.Numeric | Нет | ||
Тайм-аут | Время в миллисекундах, в течение которого будет происходить поиск нужного элемента | Robin.Numeric | Нет | ||
Номер окна | Порядковый номер окна, с которым должно работать действие. Если не указать номер окна, будет проверено первое окно. Нумерация начинается с 1 | Robin.Numeric | Нет |
Особые условия использования
Если пользователь в "Тип связи" выбирает "Родительские элементы" и у указанного win-элемента отсутствует родитель, то в результате вернется пустая коллекция.
Если пользователь в "Тип связи" выбирает "Соседние элементы" и у указанного win-элемента отсутствуют соседи, то в результате вернется пустая коллекция.
Если пользователь в "Тип связи" выбирает "Дочерние элементы" и у указанного win-элемента отсутствуют дети, то в результате вернется пустая коллекция.
Метод обхода графа - в ширину.
Пример работы действия
- Пользователь указал элемент L, "Глубина поиска"=3, "Тип связи" = "Родительские элементы". Результат - коллекция с элементами E, B, A
- Пользователь указал элемент B, "Глубина поиска"=2, "Тип связи" = "Дочерние элементы". Результат - коллекция с элементами D, E, I, J, K, L
- Пользователь указал элемент F, "Тип связи" = "Соседние элементы". Результат - коллекция с элементами G,H
- Пользователь указал элемент A, "Тип связи" = "Родительские элементы". Результат - пустая коллекция
- Пользователь указал элемент A, "Тип связи" = "Соседние элементы". Результат - пустая коллекция
- Пользователь указал элемент I, "Тип связи" = "Дочерние элементы". Результат - пустая коллекция
Пример использования
Задача
Открыто окно с названием "Блокнот". Необходимо получить соседние, дочерние и родительские элементы элемента "Масштаб".
Решение
Воспользоваться действием "Получить связанные элементы".
Реализация
- Собрать робота, состоящего из действий:
- Настроить параметры действия "Запустить процесс":
- Настроить параметр действия "Фокус на элементе Вид". Элемент необходимо получить с помощью инструмента WinSpy. Работа с WinSpy описана в разделе Получение win-элемента. Установка тайм-аута, в целом, не приводит к увеличению времени выполнения действия сверх того времени, которое потребуется для того, чтобы элемент, который мы используем в действии стал видимым и доступным. В течение установленного тайм-аута действие пытается получить доступ к элементу с которым работает. Как только появляется доступ к элементу, ожидание тайм-аут заканчивается.
- Настроить параметр действия "Фокус на элементе Масштаб". Элемент необходимо получить с помощью инструмента WinSpy. Работа с WinSpy описана в разделе Получение win-элемента.
- Настроить параметр действия "Получить связанные элементы". Выбираем ранее полученный с помощью инструмента WinSpy элемент "Масштаб1" и тип связи - Дочерние элементы:
- Настроить параметр действия "Получить длину". В поле Коллекция или массив, указываем результат действия "Получить связанные элементы":
- Настроить параметр действия "Вычитание". Второй операнд будет 1:
- Настроить параметр цикла "Для". В поле Конечное значение, указываем результат действия "Вычитание":
- Настроить параметр действия "Получить значение по индексу". В поле Коллекция, указываем результат действия "Получить связанные элементы", в поле Индекс, указываем состояния итератора цикла "Для":
- Настроить параметры действия "Завершить процесс":
- Нажать на кнопку "Старт" в верхней панели.
Результат
Программный робот отработал успешно.
Дочерние элементы "Увеличить", "Уменьшить", "Восстановить масштаб по умолчанию" получены.
Пример 2
- Изменить параметр действия "Получить связанные элементы". Выбираем ранее полученный с помощью инструмента WinSpy элемент "Масштаб1" и тип связи - Родительские элементы.
- Нажать на кнопку "Старт" в верхней панели.
Результат
Программный робот отработал успешно.
Родительский элемент "Вид" получен.
Пример 3
- Изменить параметр действия "Получить связанные элементы". Выбираем ранее полученный с помощью инструмента WinSpy элемент "Масштаб1" и тип связи - Соседние элементы.
- Нажать на кнопку "Старт" в верхней панели.
Результат
Программный робот отработал успешно.
Соседний элемент "Строка состояния" получен.