关于设计器和机器人上的流程打开的浏览器不一致问题分析

案例背景:

前阵子客户的网站平台升了级,进入网站时会自动监测电脑是否已经有安装数字证书,之后再自动进入到网站里面。


问题现象:

客户在设计器对 RPA 流程升级后,运行流程后网页可以检测到数字证书,并进入到网站里面。
但当流程发布到本地机器人执行后,流程会卡在监测数字证书的网页那里,网页提示没检测到数字证书,因此没能自动进入网站。


问题细节:

问题细节 1:浏览器图标不一致

使用设计器打开 IE 浏览器的图标,在任务栏显示的位置,和机器人打开的浏览器图标位置不一致,如下图。

问题细节 2:流程有管理员图标

该流程的在机器人软件上显示时,流程名字前面有个管理员图标,如下图,其他流程都没有。


问题分析:

分析步骤 1:检查流程代码

老规矩,第一步先检查下代码是否有问题。经检查,无发现代码疑点。我们启动浏览器使用的组件为“打开网站”组件,浏览器的启动路径也是默认填写。重新将流程推送到机器人上,执行时网页依旧是监测不到数字证书。

分析步骤 2:检查浏览器版本和配置

推测设计器启动的 IE 版本和机器人启动的 IE 版本不一致(可能一个 32 位一个 64 位)。通过对比两个浏览器的关于选项卡内容,并无发现版本区别。此外还检查了两个浏览器的配置(安全性、管理加载项、高级设置,兼容性视图),设置也一致,初步相信浏览器是同一个。

分析步骤 3:检查浏览器启动位置

还是怀疑两个浏览器不是同一个版本。通过任务管理器再次检查下,判断两个浏览器是否由同一文件位置打开。当打开任务管理器后,发现由设计器打开的 IE 浏览器下有两个 IE 项(一个显示 32 位,一个显示 64 位,右键可以打开到文件位置);而由机器人打开的 IE 浏览器下也是有两个 IE 项(但两个浏览器项都显示 64 位,右键无法打开文件位置【灰色】),因此重新怀疑设计器和机器人打开的不是同一个浏览器版本。【关于打开的浏览器是不是同一个的问题分析到这里,后面就没再分析了。暂时没什么好的思路解决这问题浏览器版本】

分析步骤 4:关闭机器人管理员权限

分析是不是因为机器人开启了管理员权限的问题。于是在机器人软件上先将流程删除了,再将机器人的管理员权限关闭,接着继续关闭机器人软件(机器人软件关闭后就打不开了,之后重启电脑才解决),最后在设计器重新推送流程到机器人。机器人 执行流程,网页监测数字证书成功。问题解决。


问题总结:

从问题解决方式看,应该是因为机器人软件启动了管理员权限的问题,关闭掉管理员权限重新推送流程就好了。


后续补充:

  1. 在解决问题的过程中,我还考虑了其他的方案,但还没有进行尝试,主要是我想探索这个问题出现的根本原因。大家要是遇到的话,有兴趣可以进行尝试下:
    可以通过其他组件来启动浏览器。例如打开文件组件、打开浏览器组件,又或者通过在点击任务栏浏览器图标的方式来启动浏览器(这些方案应该可以解决问题,但并不能满足我的好奇心)。

  2. 客户的设计器版本为 2020.2 版本(win7)。刚刚我在自己电脑上使用了 2020.3 版本进行问题重现,发现无论机器人有没有开启管理员权限,打开的浏览器在任务栏的图标都是在同一个位置,问题重现失败。因此我也不能够保证我上述总结里面的解决方案可以解决相同的问题。

  3. 本案例问题是由我同事过去客户现场解决的,我负责远程协助(流程我开发的,但我抽不开身,只能远程分析问题,由同事进行处理)。

  4. 本次问题处理虽然完美解决了,但这问题依旧让我觉得很困惑。按我理解机器人软件使用 python 的解释器版本和设计器应该是一致的,流程运行结果也应该是一致的。

  5. 在这问题解决后,我也在犹豫要不要将案例写出来,毕竟这问题挺奇怪的,不知道我分析的对不对,还是我只是恰巧解决了问题而已,毕竟没什么证据石锤这问题。思考良久后还是把这奇怪的案例给写出来,供大家参考,说不定哪天有人遇到了相同的问题,希望也能从本文中获取自己的答案。