影刀RPA网页自动化之锦囊妙计

1,084 阅读3分钟

前言

  • 影刀RPA是一款软件机器人,能在PC/手机上模拟人的各种操作,自动化实现各种有逻辑规则、重复性的人工工作,释放生产力。
  • 今天我们要探讨的是使用影刀开发网页自动化流程中说遇到坑,以及解决妙计

1. 获取当前任务的日志内容

首先一个影刀RPA应用一般是以下执行流程: yuque_diagram_1.png

通过上图我们知道,影刀应用是24小时无间断执行的。

有时候我们需要获取应用执行过程中的日志内容,排除程序bug。

影刀内置了导出日志指令,可获取应用运行期间的全量日志:

Snipaste_2024-08-28_10-47-06.png

但是全量日志包括其他已经执行完毕的任务日志,日志内容冗余

为了减少日志查找和排查bug的成本,所以我们自研一个获取当前任务的日志内容指令:

Snipaste_2024-08-28_11-31-19.png

实现原理: yuque_diagram_3.png

2. 超时重试机制

有时候由于网络波动、服务器不稳定等原因,导致网页加载错误、超时,导致任务执行失败。

Snipaste_2024-08-30_16-48-44.png

为此,我们可以设计实现一套超时重试机制流程,提升任务成功率:

Snipaste_2024-08-30_16-56-44.png

实现原理: yuque_diagram_8.png

3. 等待目标内容加载完成

浏览网页过程中,经常伴随着各种操作,但是操作完成之后,往往需要等待网络请求完成,才能进行下一步的操作。 如点击下一页按钮,跳转到下一页后,再在页面中输入内容:

yuque_diagram_4.png

为了应对以上情况,我们可以这样解决:

  • 目标页面有唯一CSS选择器,可通过影刀内置的获取元素对象指令并给等待元素存在设置一定的超时时间解决:

17248263029576.png

Snipaste_2024-08-27_20-10-41.png

  • 目标页面和上一页的页面元素相同,没有唯一的CSS选择器,仅部分页面文字不同时,可以通过自研指令-等待网页文字出现解决:

Snipaste_2024-08-28_14-32-27.png

实现原理: yuque_diagram_2.png

4. 根据文本获取元素

有时候网页的页面元素相同没有唯一CSS选择器,导致难以捕获到目标元素。

针对这一问题,可以通过自研指令-根据文本获取元素解决:

yuque_diagram_6.png

Snipaste_2024-08-28_14-41-17.png

实现原理: yuque_diagram_5.png

5. 使元素失去焦点

有时候下拉选择器会遮挡住底下的控件: Snipaste_2024-08-30_14-53-33.png

如果我们需要操作被遮挡的控件,需要先把下拉选择控件失去焦点,让下拉菜单隐藏后再进行操作。

让元素失去焦点,可以有以下做法:

  • 通过影刀获取一个空白的元素,然后执行一次点击空白元素操作。 Snipaste_2024-08-30_15-40-37.png

  • 使用自研指令-元素失去焦点指令

每个页面的元素不一样,导致每次都要查找判断这个元素是否为空白、不响应点击事件的元素,比较麻烦,且通用性较差。

为此,我们可以通过自研指令-元素失去焦点指令解决:

Snipaste_2024-08-30_15-27-28.png

实现原理: yuque_diagram_7.png

总结

前端开发工程师作为网页的开发者,对网页结构、页面元素非常熟悉,灵活运用前端专业知识,配合影刀的可视化开发,能够开发出复杂的网页自动化操作流程。

结语

感谢您耐心阅读这篇文章。如果您觉得内容对您有帮助或启发,请不吝点赞支持。如果您发现文章中的任何错误或需要改进的地方,欢迎您指正批评。