在9月16号,51RPA小编分享了《RPA之术业有专攻篇》文章中提到,要能做到真正的到独当一面,写出优化,健壮,安全,通用和易维护的代码,RPA的开发人员需要有一定的开发经验,专业的人做专业的事才是正道。分享一下在项目开发过程中遇到的问题,以及如何解决的过程,延伸下“术业有专攻”这个话题。
操作的是某网上银行的桌面版的客户端,里面包含了自定义的组件。需求是调整记账日期的开始日期和结束日期里的值,通过手动的操作方式是将光标移动到年份,通过上下键调整年份,再通过右方向键移动到月份,通过上下键调整月份,类似的方法再调整日期。
该案例的难点在于记账日期为自定义控件,从表面看就一个字段,实际点击进去会有三个独立的字段(年月日),另外通过UiPath进行控件抓取也只能抓到整个字段,无法抓到年月日。
初步分析之后,会有下列三种的实现方式:
1、通过Type into,直接将日期赋值到记账日期中
UiPath找到的开始日期和结束日期的选择器的属相完全是一致的,无法进行区分。导致在赋值的时候只能到结束日期上,无法赋值到开始日期,并且年月日的顺序会有错误。
2、通过Send Hotkey 发送Tab键到记账日期中
通过发送Tab键可以跳到结束日期,但是再通过上下键调整时,光标会自动跳到数据筛选中。另外通过Tab进行光标跳转时,每一次跳转的路径也不相同,没有规律可寻,无法搞定。
3、通过Click Text的相对位置,找到记账日期
通过Click“记账日期”的相对位置定位到开始日期中的年份中,但是再通过上下键调整时,光标会自动跳到数据筛选中,无法搞定。
另外需要说明下,在操作网银这种软件时,对代码的健壮性要求要高些,尽量避免使用Tab键之类的键鼠操作,因为这种系统的版本升级比较频繁,版本间可能存在大的差异性。
经过上述的三种方法的测试,基本上确定通过UiPath本身是无法完成这一操作,只能借助第三方的自动化工具了。
在《请理性看待RPA》一文中提到RPA本身就是自动化工具的一种,在RPA这一个词语流行之前,市场上已经存在了多个开源或者免费的自动化工具,其中比较有代表性的有两个:
Selenium -是一个开源的自动化工具,其主要用于Web应用程序的自动化测试。
AutoIt – 是一个免费的自动化工具,用于Windows GUI (图形用户界面) 中进行自动化操作。
对于这两种自动化工具的操作,就完全属于软件开发的范畴了,需要大量的编程。
像这种对GUI进行操作的情况,就可以尝试使用AutoIt。通过使用AutoIt对记账日期进行识别,发现可以通过indexid将开始日期和结束日期进行区分,也就是可以定位这两个字段。
最终解决方案为UiPath调用AutoIt来实现,如下:
另外还有一种情况,有些自定义(......详细请参考原文)
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。