UIPath获取⽹页元素做遍历点击的实现
了很久的资料才知道控件的⽤法.
需求
需求是在列表页循环点击每⾏的⼀个详情按钮判断⾥⾯的内容, 并做对应的处理. 但是第⼀步的循环点击就难住了. 下⾯给出解决⽅案.
解决
使⽤ UiPath.Core.Activities.FindChildren 这个控件.
在 属性->⽬标->选取器 (语⾔我⽤的中⽂) ⾥⾯写类似下列的规则, 复制XPath和快速替换可以看我这篇():
"<webctrl css-selector='body>div>div>div>table' tag='TABLE' />"
说明: 其中 css-selector 相当于⽹页元素的 xpath, 即该元素在⽹页结构中的路径. 注意连接符⽤ > 这⾥到 table .
然后在 筛选 ⾥, 使⽤下列规则筛选出⾃⼰要的元素集合. 我这⾥要点击的那个详情按钮是 a 标签, 所以这样
筛选.
"<webctrl tag='A'/>"
最后在 作⽤域 那⾥选择: FIND_DESCENDANTS 这个选项. 在输出指定⼀个 System.Collections.Generic.IEnumerable<UIPath.Core.UIElement>
类型的变量赋值. 这样就到了想要的所有元素了.
之后做遍历循环如下:
使⽤控件为: UiPath.Core.Activities.ForEach .
在 属性->TypeArgument ⾥设置每个遍历的 item 为 UIPath.Core.UIElement 类型. 在输⼊值那⾥填⼊上⼀步赋值的元素集合变量. 这样就可以遍历得到每⼀个元素了.
最后做点击事件的步骤如下:
⾸先获取元素的特征, 例如在我的需求⾥, ⽹页上每⼀⾏的详情按钮元素中有⼀个重要的区分属性是: trade_id, 因此我⽤分配控件单独提取出每个元素的 trade_id.
trade_id = Convert.ToString(item.Get("trade_id"))
然后使⽤单击控件, ⽤ 属性->⽬标->选取器 下⾯的规则:
"<webctrl aaname='详情' tag='A' css-selector='body>div>div>div>table>tbody>tr>td>a' trade_id='" + trade_id + "'/>"
如何做网页说明: 同样在 css-selector 中指点这个详情按钮的 xpath(在⽹页结构中的位置), 然后拼接 trade_id, 注意是⽤双引号把两个字符串拼接在⼀起.
这样做就解决这个需求了.
应⼩伙伴要求, 写了简单的例⼦, 已上传到 gitee, 下载 loop_click.xaml 这个⽂件放到 UIPath Studio 打开的项⽬路径⾥即可, 打开后参照我上⾯的描述理解
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论