Как работают селекторы UIPath, когда нет определенного идентификатора - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь создать проект UIPath для автоматизации заполнения простой формы в Microsoft Dynamics Web Client 2016. У меня были проблемы со странным поведением из-за того, что я считаю ненадежными селекторами.Веб-клиент Dynamics написан на Angular и выглядит как одностраничное приложение.Насколько я могу судить, ни один из входов не имеет какого-либо типа идентификатора или определенного атрибута данных, который UIPath может использовать в качестве селектора.Похоже, что программа использует дерево DOM для подсчета количества вложенных элементов div для присвоения каждому входу атрибута parentId.Кажется, это вызывает ненадежное поведение, когда есть всплывающие окна, и я обеспокоен тем, что дальнейшая автоматизация этого конкретного веб-приложения не будет масштабируемой.

Пример селектора:

<html title="Microsoft Dynamics GP" />
<webctrl parentid='a000000000000000056800083584c00030100000000f1550000000000'
tag='INPUT' />

Откуда поступают этот атрибут селектора и parentId, и будет ли он надежным и масштабируемым за счет обновлений и изменений формы?

Example of selector

1 Ответ

0 голосов
/ 21 ноября 2018

Если сам элемент не может быть надежно найден, просто обойдите проблему, используя привязку к элементу, который может.Например, элементы input в http://www.rpachallenge.com/ никогда не могут быть надежно найдены, так как их идентификатор меняется каждые несколько минут.Итак, если вам нужно ввести текст в поле «Название компании», нам нужно работать с якорями - в нашем случае всегда будет метка с отличительным текстом.

relative selector with anchor

Вам нужно будет использовать Якорную базу вместе с Поиск элемента (плюс желаемое действие).Вот селектор для якоря - используя описательный текст элемента:

<webctrl aaname='Company Name' tag='LABEL' />

Затем действие Type Into относится только к элементу Input:

<webctrl tag='INPUT' />

Единственное, что нужночтобы иметь в виду несколько языков, в этом случае вам нужно будет либо рассмотреть их в селекторе, либо выбрать элемент по id, если это применимо.

...