RPA开发技巧心得:如何选择日期

背景

今天来分享一个日期选择的自动化流程。
但凡做过RPA开发的,应该都知道下面的这个东西:
日期组件
这是一个日期组件,我们在日常的流程开发中经常需要选择日期来满足一些自动化需求,比如日常的数据导出、查询等。那么这块该如何开发?希望这篇文章可以帮到你。
不过需要注意的是,这篇文章开发思路分享的前提,是日期组件上的年月已经确定,本文旨在讲如何选择对应的日。比如,上图我希望我的自动化流程可以选择6号这一天,而不用管年月。(关于如何选年和月,我会在下一篇文章具体说明)
目前我使用的RPA工具是影刀RPA,可能会和你所使用的工具有所区别,但流程开发最重要的是思路,理论上整体不会受太大影响,如有差异比较大的地方,还请自行找到适宜的替代方法。

开发分析

捕获元素

捕获元素是最重要的一步,它将决定你的机器人能否正确选择指定日期。我们还是拿上面的日期组件为例。
在影刀工具中,我捕获了一下某平台上的日期组件:
日期组件捕获结果
一共是42个元素(也就是从26到6),那么元素捕到这个阶段的时候就可以结束了,不需要去调整元素属性,让其正好等于本月30个元素(那样做太麻烦)

思路设计

捕获到元素之后,就可以开始设计思路了。
可能你会这么想:刚刚捕获了一下日期元素,那我先把它们放在一个列表里面,然后去循环它。如果我想选择的日期等于这个列表里面其中一个日期的值,那么我就点击这个位置的元素,然后退出循环就可以了。
设计思路

思路整体上是对的,但是这里面还有一些细节是需要考虑的。
我们首先观察一下这个日期组件上的数字——蓝色区域,也就是26-31号,这些是上个月的元素;橘色区域,也就是1-6号,这些是下个月的元素。不管是蓝色还是橘色部分,都不是这个月的日期。

如果我们根据刚才简单的逻辑开发出了选择日期的模块,你的机器人很可能会点击错误的日期。比如,我要选择27号,按照刚才的逻辑,它应该点击的是蓝色区域的27号,而并非中间的27号,这并不是我们想要的结果。
所以我们需要在这个基础上再加上一些限制条件。
我们再仔细看一下这个日期元素,不难发现,不管这个日期组件怎么变化,**”1“这个元素始终会出现两次,**一个出现在本月,一个出现在下个月。我们再看下3月的情况:
3月日期组件
3月的上个月是2月,只有28天,所以蓝色区域只有三个。橘色部分相应地出现了八个。但1这个元素始终出现了两次:一个是3月1号的1,另外一个是4月1号的1。这也应证了上面我们发现的规律,那这个1就可以成为我们的限制条件了,于是思路就可以这样改一下:
在进入到循环后,如果:
当前循环到的日期等于输入的日期

当前循环的位置大于或等于第一个1的位置
那么就点击这个日期元素,并退出循环。
之所以”大于或等于第一个1“,是需要考虑你输入的日期正好是1的情况。流程图如下:
新思路
这样做的好处是:我们只需要保证我们捕获的是当前42个元素就可以了,不需要考虑是上个月还是下个月的情况

流程展示

流程编写图

流程展示
说明

  1. 在这个流程中,我额外获取了一下日期组件的相似元素文本列表,目的是用这个文本列表来找到“第一个1出现的位置”;
  2. 我用了一个【获取列表指定项的位置】指令,找到了第一个1出现的位置,这个指令的特殊性在于,如果一个列表中出现了重复的值,它只会返回第一个,这就避免了它找第二个1的位置;
  3. 【循环相似元素】是直接遍历日期元素列表的。中间的get_text()指的是获取了这个元素对象的文本内容。

效果展示

效果演示

如果有帮到你的话,别忘记点赞关注哦~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值