【自动化流程设计】使用RPA,不写代码也能自动登陆账号
一、提出问题
打开并登录艺赛旗社区需要那些步骤?如若我们要自动化登录又该怎么实现呢?
二、问题分析
如果使用代码来进行自动化化登陆的话,就我所知道的使用Python进行账号登录,大致分为这4个步骤:
- 获取网址,得到【URL】
- 输入账号密码,得到【data】
- 构建Request Headers,得到【headers】
- 登入
普通的用户肯定是不能理解的,因为他们已经习惯了界面操作,既方便又快捷,且可细致分为4个步骤:
- 打开网站:https://support.i-search.com.cn/
- 点击登录(直接打开登录页面的情况下这个步骤都可以省略掉)
- 输入账号密码
- 登录
但既然要实现自动化登录,我们是否能够通过某种方法,让电脑像人一样操作,自行完成这些步骤呢?
还真有,RPA便能通过模拟用户进行界面操作的行为,实现自动登录。
三、解决问题
如下图所示,便是艺赛旗RPA模仿一般用户进行登录流程所制定的相应流程:
- 图示中的【打开浏览器】组件,便是选定指定的浏览器打开指定的网址,这里演示的是用IE浏览器打开艺赛旗RPA社区;
- 打开网站之后,便是文章第一张图所示的页面了,这时候只需要用鼠标点击登录就能跳转到登陆页面了,而接下来的【鼠标点击】组件便是让鼠标光标点击指定位置;
- 跳转到登陆页面后,就是输入账号和密码了,上图中所示的两个【设置文本】组件,即可实现在选定文本框内输入指定内容;
- 最后点击登录按钮进行登陆,同样使用【鼠标点击】组件进行实现。
四、优化
我们进行相关操作的时候,眼睛一直在接收信息让大脑进行处理,然后做出相应的回应。
例如,在打开网页的时候万一网络延迟,导致网页打开失败,这时我们看到页面空白,立刻就会进行刷新或关闭掉网页再重新打开;又如打开网页后我们发现网页已经记住了我其他的账号已经登录,这时候我们会将其他账号登出,然后再重新登陆账号。
这是我们经常会遇到的问题,所以在这样的自动化流程设计过程中,我们也是需要考虑容错机制的,进行容错处理后,大概的流程就是这样了:
-
设置登录次数
如上所述,在登录的过程中难免会遇到一些意外的情况发生,所以流程自动化运行出现错误情况的时候,我们希望既流程能够自行处理,重新自行登录,有希望登录一直出错的情况下又不能无限执行。
所以设置自动登录的次数为3次,超过3次还没有登录成功,那肯定是有大问题的。
这里直接使用【For循环】组件,设置整个登录的操作最多循环三次,三次之后还没登录成功,那么就提示用户需要检测当前的环境了。 -
网页是否打开成功
刚才也提到过,可能网络延迟等一系列问题,会导致我们所需要的页面未能正常打开,那么我们可以通过一些小技巧来检验页面是否跳转。
我们在使用艺赛旗RPA的过程中常用的检测方法是使用【获取文本】组件来获取页面跳转的情况下所特有的页面控件元素,如果能够获取到“登录”这个控件,那么就可以肯定正常打开了网页,这样就能进行下一步点击登录的操作了。
- 登录检测
如若没有获取到上面第2点中的“登录”控件,要么就是已经登录了,要么就是网页没有正常打开。
首先进行检测是否已经登录了,登录后的页面状态如下所示:
同样先使用【获取文本】组件来获取登录用户的用户名,这里也可以分为两种情况:
1)该用户名是我们所需要登录账号,那么我们可以判定登录成功,登录的操作自然也就可以结束,直接用【Return返回】组件,让流程返回True,表示登录成功;
2)该用户名不是我们所需要登录账号,那就模拟用户进行登出的操作,然后再进行下一次的登录操作。
其余情况就是网页没有正常打开了,直接关闭浏览器,再进行下一次的登录操作。
当然,在输入账号密码登录之后,也需要获取用户名来检测是否登陆成功:登录成功,返回True结束登录;登陆失败那么就检测是否是账号或密码错误,是则立即提示用户账号和密码输入有误,然后结束登录,否则就是其他问题,关闭浏览器再进行下一次的登录操作,直至登录成功,或者三次之后(还没登录成功)提示用户需要检测当前的环境。