正则表达式和全局变量在元素编辑中的应用
正则表达式
元素编辑中,如何限定属性不包含某一段字符串?
如果有某个复选框元素的的勾选与否取决于其某一个属性,勾选时属性为 CBX_active_18l33c8
,不勾选时属性为 CBX_18l33c8
,如何判断这个复选框是否已经勾选?
方案一:捕捉并编辑元素时不勾选这个属性,使得在勾选和不勾选是都可以校验到元素,用获取元素属性指令获取这个属性的文本,用内置的 If 指令判断是否包含
active
。方案二:影刀的元素编辑中所有属性都支持通配符和正则表达式,正则表达式可匹配(不)包含某个子字符串的字符串,语法如下:
^((?!active).)*$
,意思是匹配所有不包含active
的字符串。如果要同时排除多个关键字,语法为^((?!disabled|prev|diff).)*$
,意思是匹配所有同时不包含disabled
、prev
和diff
的字符串,即在该属性中不能包含三个中任意一个。
全局变量
全局变量作为元素属性
关于全局变量,参考 https://www.winrobot360.com/doc/功能文档/应用编辑相关/全局变量.html。
新建好全局变量后,编辑元素时点击属性值后面的 fx,选择全局变量。
这样这个元素的属性即为这个全局变量当前的值。校验时,需要先设置该全局变量默认值,或暂时将全局变量属性条件改为纯文本。
流程执行逻辑:获取已打开的网页对象 -> 设置全局变量按钮名称的值为“新闻” -> 点击文本属性设置为变量“按钮名称”的元素“链接_新闻” -> 设置全局变量按钮名称的值为“学术” -> 点击文本属性设置为变量“按钮名称”的元素
流程执行效果:在已经在 Chrome 打开的百度首页分别打开新闻和学术板块。
元素编辑中如何将全局变量和正则表达式配合使用
直接将正则表达式(通配表达式)的内容设置给全局变量,选择全局变量后匹配方式选择正则(通配符)。
流程执行逻辑:获取已打开的网页对象 -> 设置全局变量按钮名称的值为(直|新)
-> 循环“链接_新闻”在网页上限定到的所有元素,保存在 web_loop_element
中 -> 分别点击 web_loop_element
流程执行效果:在已经在 Chrome 打开的百度首页分别点击新闻和直播板块。