【问题标题】:How do UIPath selectors work when there is no specific ID没有特定 ID 时 UIPath 选择器如何工作
【发布时间】:2019-04-22 00:41:27
【问题描述】:

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

选择器示例:

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

这个选择器和 parentId 属性从何而来,它是否可以通过更新和表单更改可靠且可扩展?

【问题讨论】:

    标签: uipath


    【解决方案1】:

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

    您将需要使用Anchor BaseFind Element 活动(加上所需的操作)。这是锚点的选择器 - 使用元素的描述性文本:

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

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

    <webctrl tag='INPUT' />
    

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

    【讨论】:

    • 唯一的问题是这个应用程序甚至没有可用的标签文本。它都隐藏在 Angular javascript 对象中。这些都不能在 HTML 中访问,因此如果不解决基于 Citrix/图像的自动化,RPA 挑战示例就无法工作。我会接受你的回答,因为它似乎是 UIPath 可以提供的最佳答案,但在我看来,它仍然没有在这个特定的 Angular 应用程序中创建坚如磐石的自动化。感觉如果选择器不好用,使用 UI 自动化就像建立一个纸牌屋,在任何更新后最终都会失败。
    • 从第一张截图来看,有些元素似乎有id(例如gpContentArea)。我同意找到可靠的选择器是主要挑战,我想知道您是否可以提供整个(相关)HTML 作为示例。请注意,UiPath inserts 通过插入属性来更改 HTML,因此在浏览器中将页面保存为 HTML 就可以了。我很乐意再看看。
    • 该 id 是整个页面的包装,表单内部没有任何可识别的 ID 或数据属性。我们已经搜索了 UI Explorer 并与 UIPath 工程师讨论了这个问题。自动化现在正在运行,我只是担心如果未来的更新包括任何 UI 更改,它需要进行调整。 I am just a bit cynical about UI automation when the selectors are no good.看起来 Angular 的最佳实践应该包括向输入添加 ID,即使 Angular 不需要它们,以支持 UI 自动化之类的东西。
    • 您是否将浏览器看到的内容与 Ui Explorer 显示的内容进行了比较?在 Ui Explorer 中查看时,我发现奇怪的站点没有显示所有可用的属性(还没有专门尝试过 Angular 站点),需要您手动输入属性名称和值...... OCR 将是另一种选择。但是,正如您所提到的,我不认为 RPA 是解决网站/应用程序不断变化的情况的解决方案,在这种情况下您无法控制开发周期,或者它的设计不适合 RPA 和其他可访问性选项。
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多