UiPathLevel1-Lesson6.Selectors
介:Selectors 是识别UI元素的⽅式。它是⼀个XML字符串,其中包含⼀些属性可以唯⼀地定义指定的元素。
学习⼤纲:
什么是Selector
什么是稳定的Selector
如何在Selector⾥插⼊通配符
如何在Selector⾥插⼊变量
1. UI Exploer中的Selector
UI就是很多个互相嵌套的容器,使⽤UI Explorer⼯具可以帮助我们了解UiPath怎么去识别某个UI中的元素,了解Selector的⼯作原理。
1) 点击⼯具栏上的Select Target Elements,再点击UI界⾯中的某个元素。
2) 该UI元素的Selector显⽰在下⾯的模块(Selector Editor Panel)⾥,⽽左边的模块(Visual Tree Panel)⾥是⼀个完整的UI树状图,包含了UI 所有的元素。
3) 点击Highlight⼯具,然后在UI Tree⾥选中某个元素,此时UI中对应的元素会被黄⾊的矩形框起来,⽅便查看。
4) 如果某个元素未被识别(在选取这个元素时没有出现蓝⾊的矩形框),可以更改UiFrameworks的选项,再重新指定元素。
UiFrameworks⽤于更改确定UI元素及其Selector的技术
Default:UiPath的专有⽅法。通常适⽤于所有类型的⽤户界⾯。
Active Accessibility:Microsoft早期提供的⼀种使应⽤程序可访问的解决⽅案。当Default⽅法不起作⽤,⽽软件是⽐较旧的版本
时,推荐尝试这种⽅法。
UI Automation:Microsoft改良过的访问模式。当Default⽅法不起作⽤,⽽软件是⽐较新的版本时,推荐尝试这种⽅法。
5) 上⾯的模块(Property Explorer Panel)显⽰的是未优化的原始Selector,它包含了⽬标元素的完整路径。下⾯的模块则是优化过的最终Selector。
UiPath默认使⽤第⼀层和最后⼀层容器来构成最终的Selector,因此优化过的Selector⾥的元素会少⼀些。
选择或者取消选择某⼀⾏,可以在最终的Selector⾥添加或删除元素。
6) 优化后的Selector是标准的XML代码,它由两部分构成:
元素类型:wnd和uia。元素的类型⼀⽬了然,⽐如window,control,HTML,Java等等。
属性 (Attributes):元素类型后⾯的部分,它是Selector识别特定元素的关键。
下列代码的第⼀⾏表⽰名为的应⽤程序,该程序的Class是ApplicationFrameWindow,标题是All Calendars - Calendar。如果任⼀条件不匹配,就不到这个应⽤程序。
7) 属性显⽰在右边的模块(Selector Attributes Panel)。选择或者取消选择某个属性,会相应的更改Selector。
总结:Selector就是UI元素和相关属性的列表,UiPath根据这些信息去匹配屏幕上已有的元素。
注意:在⼀些情况下,当UiPath和⽬标应⽤程序时⽤不同的权限打开的,Selector可能⽆法正常作⽤。推荐总是⽤相同的权限打开程序。
2. Selector的调试
实例:⽤Basic⽅式录制⼀个Sequence,在名为的⽂本⽂件⾥录⼊⼀段⽂字。
分析:
1) 查看Type Into活动的属性⾯板,打开Selector Editor。
2) 关掉,打开五个新记事本并运⾏Sequence,30秒后UiPath将报错。
网页计算器html代码* 这种提⽰⼤部分都是Selector出现问题。
3) 问题出在title属性上。由于指定了标题,当没有打开时,程序就⽆法正常运⾏。
4) 考虑到你是想让这个程序在任何⽂本⽂件⾥都可以运⾏,还是只在指定的⽂件⾥运⾏,这可以是⼀个bug,也可以不是。
5) 如果想要程序在任何⽂本⽂件⾥运⾏,只要删除title属性就可以了。
6) 重新运⾏程序。虽然打开了五个记事本,但程序只会在最上层的记事本⾥运⾏。
*Selector Editor和UI Explorer有所不同。在Selector Editor的Edit Attributes模块⾥,该Selector包含的所有UI元素的相关属性都会列出来。⽽在UI Explorer⾥,只会显⽰选中的那个UI元素的相关属性。
点击左下⾓的Open in Explorer可以在UI Explorer⾥查看和修改更多的UI元素和属性。你也可以在Selector Editor的Edit Selector模块⾥⼿动
修改代码。
3. ⾃定义Selector
1) Full Selector和Partial Selector
Full Selector:包含了确定该UI元素位置的所有必要信息,其中包括顶级窗⼝的信息。
Partial Selector:不包括顶级窗⼝的信息,但是嵌套在⼀个包含了顶级窗⼝信息的容器中,⽐如Attach Window活动,Open Application活动。
除了是否包含顶级窗⼝的信息,Full Selector和Partial Selector没有什么区别。在同⼀个窗⼝执⾏多个操作时建议使⽤Partial Selector;需要在多个窗⼝之间切换时建议使⽤Full Selector。如果可能受到其他应⽤程序或窗⼝的⼲扰,最好使⽤Partial Selector。
*Full Selector也可以在Attach Window或者Open Application等的容器中使⽤。
*录制功能的Basic模式使⽤的都是Full Selector,Desktop模式使⽤的都是Partial Selector。
2) 动态Selector:通配符
* (星号):代替任意个字符。
? (问号):代替任意⼀个字符。
实例1:如何让UiPath识别出⼀个名为“Daily Report - ”加上当天的⽇期的⽂本⽂件。
⽅法:将动态的部分,在这⾥即⽇期,⽤*表⽰。
实例2:⾸先在亚马逊⾸页查询书A的价格,接着⽤Basic模式录制下列操作:选中并清空搜索栏,输⼊书B的名称并查询,读取书B的价格并⽤Message Box显⽰。
运⾏程序30秒钟后,将收到下⾯的错误信息。
分析:由于⾸先查询了书A,在录制过程中浏览器的标题包含书A的名称。但是在录制结束后,浏览器
的标题已经变成了书B,因此UiPath⽆法识别出浏览器窗⼝来运⾏程序。
⽅法:可以直接去掉title属性。但是更好的⽅法是,把书A的名称替换为通配符*。GetText活动的Selector也需要相应的修改。
3) 动态Selector:Attach to Live Element
如果不使⽤通配符的⽅法修改Selector,还可以使⽤Attach to Live Element。
到出错的Selector,点击Selector Editor右上⾓的Attach to Live Element,然后再次点击UiPath运⾏时没能识别出的元素,⽐如实例2中的搜索栏。UiPath会将之前的Selector和这⼀次的进⾏对⽐,⽤*代替其中不同的部分。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论