我是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.
提前谢谢。 :)
答案 0 :(得分:2)
最好使用通配符和idx,因为它们是用于帮助动态属性的选择器。 通配符是使您能够替换字符串中的零个或多个字符的符号。这些在处理选择器中动态更改的属性时非常有用。
星号(*)–替换零个或多个字符 问号(?)–替换单个字符
****在“选择器编辑器”窗口中使用通配符生成选择器的示例****
“记事本”窗口的部分名称会随您打开的.txt文件而变化。这是放置适当通配符真正可以提供帮助的地方。执行以下操作来生成它:
打开一个空的记事本窗口。请注意,窗口标题为“无标题–记事本”。 在Studio中,创建一个新序列。 将“类型输入”活动拖到“设计器”面板中。 单击“在屏幕上指示”,然后在记事本中指示可编辑的文本字段。选择器将自动生成并存储在选择器字段中。
在“属性”面板中,单击“选择器”字段旁边的省略号图像替换文本按钮。显示“选择器编辑器”窗口。
使用记事本打开任何.txt文件。请注意,窗口标题与步骤1中的窗口标题部分不同。 在Studio中,在“选择器编辑器”窗口中,单击“修复”,然后在步骤6中打开的“记事本”窗口中指示可编辑文本字段。将显示一个对话框,指示选择器已更新。
单击确定。选择器编辑器窗口和选择器使用通配符更新。 有关更多信息,请参见下面的链接Selectors和Selectors with UI Explorer
答案 1 :(得分:1)
您可以引用父元素以获取正确的选择器,为此您应该使用 css-selector 属性而不是考虑id html属性。例如,假设动态元素始终是div的第一个子元素,那么您可以使用:
<webctrl css-selector='div span:first-child'/>
css-selector属性的语法与HTML文件的CSS工作表中元素选择器中使用的语法相同。
只需发表评论,您还可以在UiPathForum中找到更多提示和讨论,其中包含有关此工具的具体实施的知识和讨论。
答案 2 :(得分:0)
我使用idx
管理了这个用例
我知道不推荐用于失败的情况我会选择图片。现在它失败了。
答案 3 :(得分:0)
您可能需要根据其外观使用通配符(*,?)以及aaname(text)属性的组合。也许是这样的:
<webctrl id="*-cnt" aaname="Update" />
通配符:如果ID的某些部分始终相同,那么至少选择器中的通配符将在选择过程中有所帮助。
星号(*)–替换零个或多个字符
问号(?)–替换单个字符
UIPath Selectors with Wildcards Documentation
我建议您通过Foundation Training访问UIPath,因为它似乎很有帮助,而且它是免费的。不过,老实说,我认为RPA并非适合每种Web应用程序使用,特别是当存在高度动态的HTML和不可靠的选择器时。 Angular&Knockout应用程序就是很好的例子。很多时候Angular使用javascript对象而不是UIPath不能访问的特定ID和数据属性,因此这创建了一个环境,您必须通过选择有效的选择器来发挥创造力。这也意味着这些选择器将在代码稍作改动的情况下中断。