在9月16号,51RPA小编分享了《RPA之术业有专攻篇》文章中提到,要能作到真正的到独当一面,写出优化,健壮,安全,通用和易维护的代码,RPA的开发人员须要有必定的开发经验,专业的人作专业的事才是正道。分享一下在项目开发过程当中遇到的问题,以及如何解决的过程,延伸下“术业有专攻”这个话题。html
操做的是某网上银行的桌面版的客户端,里面包含了自定义的组件。需求是调整记帐日期的开始日期和结束日期里的值,经过手动的操做方式是将光标移动到年份,经过上下键调全年份,再经过右方向键移动到月份,经过上下键调整月份,相似的方法再调整日期。编程
该案例的难点在于记帐日期为自定义控件,从表面看就一个字段,实际点击进去会有三个独立的字段(年月日),另外经过UiPath进行控件抓取也只能抓到整个字段,没法抓到年月日。 安全
初步分析以后,会有下列三种的实现方式:工具
一、经过Type into,直接将日期赋值到记帐日期中测试
UiPath找到的开始日期和结束日期的选择器的属相彻底是一致的,没法进行区分。致使在赋值的时候只能到结束日期上,没法赋值到开始日期,而且年月日的顺序会有错误。优化
二、经过Send Hotkey 发送Tab键到记帐日期中spa
经过发送Tab键能够跳到结束日期,可是再经过上下键调整时,光标会自动跳到数据筛选中。另外经过Tab进行光标跳转时,每一次跳转的路径也不相同,没有规律可寻,没法搞定。.net
三、经过Click Text的相对位置,找到记帐日期htm
经过Click“记帐日期”的相对位置定位到开始日期中的年份中,可是再经过上下键调整时,光标会自动跳到数据筛选中,没法搞定。blog
另外须要说明下,在操做网银这种软件时,对代码的健壮性要求要高些,尽可能避免使用Tab键之类的键鼠操做,由于这种系统的版本升级比较频繁,版本间可能存在大的差别性。
通过上述的三种方法的测试,基本上肯定经过UiPath自己是没法完成这一操做,只能借助第三方的自动化工具了。
在《请理性看待RPA》一文中提到RPA自己就是自动化工具的一种,在RPA这一个词语流行以前,市场上已经存在了多个开源或者免费的自动化工具,其中比较有表明性的有两个:
Selenium -是一个开源的自动化工具,其主要用于Web应用程序的自动化测试。
AutoIt – 是一个免费的自动化工具,用于Windows GUI (图形用户界面) 中进行自动化操做。
对于这两种自动化工具的操做,就彻底属于软件开发的范畴了,须要大量的编程。
像这种对GUI进行操做的状况,就能够尝试使用AutoIt。经过使用AutoIt对记帐日期进行识别,发现能够经过indexid将开始日期和结束日期进行区分,也就是能够定位这两个字段。
最终解决方案为UiPath调用AutoIt来实现,以下:
另外还有一种状况,有些自定义的控件(例如Table),经过RPA或者自动化工具是没法抓取其内部的属性,这种只能解析Visual Tree,经过父节点循环找到其子节点和相应的属性值,以后再进行相关的取值,这也须要必定的编程技巧和经验。
对于RPA开发者来讲,具备必定的.net的开发经验和熟悉RPA工具是必备的技能,最好对其余的自动化工具或技术手段也要熟悉,还须要有能必定的解决问题的能力。
像这样对技术的宽度和深度的要求,对非开发背景的人员来讲,犹如一道鸿沟,很难跨越。
闻道有前后,术业有专攻,专业的人作专业的事才是正道!