UIPath 选择器在没有特定 ID 时如何工作

How do UIPath selectors work when there is no specific ID

我正在尝试创建一个 UIPath 项目以在 Microsoft Dynamics Web Client 2016 中自动填写一个简单的表单。由于我认为选择器不可靠,我一直 运行 遇到奇怪行为的问题。 Dynamics Web 客户端是用 Angular 编写的,似乎是一个单页应用程序。据我所知,None 的输入具有 UIPath 可以用作选择器的任何类型的 ID 或特定数据属性。看起来该程序正在使用 DOM 树来计算嵌套 div 的数量,以便为每个输入分配 "parentId" 属性。当有弹出 windows 时,这似乎会导致不可靠的行为,我担心继续使用此特定 Web 应用程序进行自动化将无法扩展。

选择器示例:

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

这个选择器和 parentId 属性来自哪里?它是否可靠且可通过更新和表单更改进行扩展?

如果无法可靠地找到元素本身,只需在可以找到的元素上使用锚点即可解决此问题。例如,http://www.rpachallenge.com/ 上的 input 元素永远无法可靠地找到,因为它们的 ID 每隔几分钟就会更改一次。因此,如果您需要在 "Company Name" 的字段中键入文本,我们需要使用锚点 - 在我们的例子中,总会有一个带有独特文本的标签。

您将需要使用 Anchor Base along with a Find Element activity(加上所需的操作)。这是锚点的 selector - 使用元素的描述性文本:

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

那么,Type Into activity 只引用了一个 Input 元素:

<webctrl tag='INPUT' />

唯一要记住的是多种语言,在这种情况下,您需要在 select 或 select 元素中考虑它们(如果适用)。