2

我是 UIPath 工具的新手。如果这是一个糟糕的问题,请接受我的道歉。

我需要单击\sendKeys 一个 web 元素,它完全是一个动态元素。每次加载页面时,ID都会保持变化。

Login 1: <span id="x58Sn0-cnt" class="z-tab-text" uipath_custom_id="8">Update</span>

Login 2: <span id="nT9Tn0-cnt" class="z-tab-text">Update</span>

Note:
Also we can't relay on class "z-tab-text" because so many other elements are sharing the same class.

提前致谢。:)

4

3 回答 3

1

您可以参考父元素以获得正确的选择器,为此您应该使用css-selector属性而不是考虑 id html 属性。例如,假设动态元素始终是 div 的第一个子元素,那么您可以使用:

<webctrl css-selector='div span:first-child'/>

css-selector 属性的语法与 HTML 文件的 CSS 表中的元素选择器中使用的语法相同。

只是评论一下,您还可以在UiPathForum中找到更多提示和讨论,其中充满了有关此工具的具体实现的知识和讨论。

于 2017-07-13T13:47:33.547 回答
0

从外观上看,您可能需要使用通配符运算符(*、?)和 aaname(text) 属性的组合。也许是这样的:

<webctrl id="*-cnt" aaname="Update" />

通配符:如果您的 ID 的某些部分始终相同,那么至少选择器中的通配符将在选择过程中有所帮助。

星号 (*) – 替换零个或多个字符

问号 (?) – 替换单个字符

带有通配符的 UIPath 选择器文档

我建议通过UIPath基础培训,因为它似乎有很大帮助,而且它是免费的。不过,老实说,我认为 RPA 并不适合每个 Web 应用程序使用,尤其是当存在高度动态的 HTML 和不可靠的选择器时。Angular & Knockout 应用程序就是很好的例子。很多时候 Angular 使用 javascript 对象而不是 UIPath 无法访问的特定 ID 和数据属性,因此这创建了一个环境,您必须在其中创造性地选择可以工作的选择器。这也意味着这些选择器会因任何小的代码更改而中断。

于 2018-11-20T15:28:33.643 回答
0

我已经使用 idx 管理了这个用例

我知道不建议在失败的情况下使用图像。现在它是无故障的。

于 2017-07-06T13:54:03.760 回答