UiPath 界面元素选取器的正则表达式搜索
当我们通过RPA工具对界面进行操作时,会遇到一些控件存在不同的情况。
例如,按钮显示中文或英文;还有的情况是一个按钮,在不同的条件下,显示的内容不同。
例如会存在 “提交”,“未提交”,“失败”等内容。而界面选取时还需要通过名字定位,
例如下面中的 aaname
<webctrl aaname ....>
一种方式是通过构建不同的选取器来进行识别,操作。例如Pick的机制。
今天介绍另一种方式,就是UiPaht的正则表达式搜索。
使用的格式如下:
在末尾增加 matching:<tag_name>=’regex’
例如下面的例子,
<webctrl aaname='Submitted |Not Submitted |Returned ' tag='DIV' matching:aaname='regex' />
对aaname进行正则表达式的搜索,这里的控件会根据不同的条件,显示的内容可能为Submitted ,Not Submitted或Returned三种情况。
通过上述的方法,只需要一个控件就可以处理这些不同的情况。
使用这个方法,需要对正则表达式很熟悉。可以通过下面的网址,系统的进行学习。
https://www.runoob.com/regexp/regexp-tutorial.html
再举一个稍微复杂的例子。
有一个按钮, 英文状态下是“Clear All”, 中文状态是”全部清除”。
因为不同用户登录系统时的语言不同,所以这个按钮的内容会变化。
而且通过UI 选择器选取Selector 时,内容类似是 “Clear All Conent ...”等一长串的内容,而且会略有变化。所以兼容的方式就需要如下:
<webctrl aaname='.*(Clear|全部清除).*' tag='BUTTON' type='button' matching:aaname='regex' />
正则表达式中,如果想匹配不确定的字符,数字等需要用 “.*” , 只有“*”是匹配失败的。
解释如下:
特殊字符“.” 的意思是 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
特殊字符“*” 的意思是 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
所以只有.*才能满足这种模糊的匹配。
特殊字符“|” 的意思是 指明两项之间的一个选择。要匹配 |,请使用 \|。
所以,对于上述中,内容出现Clear 或者全部清除,并且前后内容变化的情况下。需要写好正则表达式,否则就会搜索失败。
UiPath UI选取器的官方文档在如下链接
大家如有问题,欢迎提问。
更多推荐
所有评论(0)