认识RPA元素分析器:界面元素是怎么被RPA捕获的?

时间:2023-02-08 16:09:27

导读 在未来,那些你不想做的枯燥工作,也许真的可以不做。重复化、标准化的工作都可以让 RPA 机器人帮你完成。RPA 已经应用在许多行业,发挥的作用也越来也重要。今天和大家分享的是认识 RPA 元素分析器,讲一讲 RPA 到底是怎么样去捕获一个元素的。

今天的介绍分为四个部分:

1. RPA 概念

2. RPA 核心模块

3. RPA 元素分析器

4交流&答疑

点击图片观看【直播回放】

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

分享嘉宾|何双钻 达观数据 开发技术副总监

编辑整理|孙宇 上海杉泰

出品社区|DataFun


01

RPA 概念

1. RPA 定义

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

在《智能 RPA 实战》这本书里是这样提到的:通过特定的可模拟人类在计算单机界面上进行操作的技术,按照规则自动执行相应的流程任务,代替或辅助人类完成相关的计算机操作。

一句话总结就是:用软件机器人自动化完成之前由人完成任务。概念中提到的“代替或辅助人类完成相关的计算机操作”就是对应“有人值守”或“无人值守”两种机器人。

2. IPA 定义

IPA 是 Intelligent Process Automation 的缩写。它是 RPA 和 AI 融合,是使用 AI 技术来赋能 RPA,使 RPA 能够完成更多端到端的复杂流程。我们通常把 RPA 比作抓手,让 AI 比作大脑,相当于 AI 负责思考,RPA 负责行动。RPA 相当于一个数字化的平台,可以调用计算机的所有的软硬件能力,然后 AI 可以作为智能组件被 RPA 调用,也可以作为 RPA 一部分进行赋能。比如智能化机器人的一个调度逻辑,当一个任务需要被执行的时候,选择什么样的一个机器人就可以交给 AI 来做推理。

3. RPA 中应用广泛的 AI 技术

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

(1)CV 计算机视觉:研究如何从数字图像中提取有用信息的领域。

RPA 常用的有 2 种:

  • Template matching 模板匹配

是从一张大图中去定位小图的一个算法,比如要在桌面上定位一个图标,这个小图标就是我们的模板。整个桌面的一张截图可以作为查找区域,然后从这个查找区域去定位到这个图标,再调用鼠标双击去运行它。

  • OCR 光学字符识别

输入图像,然后通过 OCR 模型分析和处理,最终输出图像上的结构化信息,包括字符的坐标、字符的具体值。

(2)NLP 自然语言处理:研究如何从文本中提取有用信息。

RPA 常用的有 2 种:

  • IDP 智能文档处理

合同的自动解析,自动化处理大量的合同文档,快速应对审阅、查找、校对的工作;

提取对应企业的招投标文件;

内部文档或者长篇幅文件的解析;

HR 的人岗精准匹配,对简历进行关键信息的提取,来构建人才的画像,然后匹配精准的岗位。

  • 文本审核

黄反审核识别文本中的一些情色低俗信息;

涉政识别,识别文本中的涉政敏感信息;

广告过滤;

垃圾检测。

4. RPA 应用价值

  • 提升企业的效率

从工作时间上看,人类一周可能工作 5 天,每天工作 8 小时,每周工作 40 个小时,机器的话可以 7X24 小时,每周工作 168 小时,每周工作时长是人类的 4.2 倍。

从速度上看,业务系统响应有多快,RPA 就能执行有多快,并且它不会因为工作时间的延长而出现疲劳或者说准确率降低等问题。

  • 降低人工的风险

人类非常擅长抽象和推理,机器非常擅长重复。人类在疲倦、外界干扰或主观情感波动时,特别容易产生误操作或者误判。RPA 可以利用机器擅长重复这个特性降低人工的风险,让机器不断地重复特定的操作。

  • 非侵入式

RPA 不需要改造原有的系统,不需要开发接口或者SDK 来实现对接。比如说两个孤立的一个系统,需要完成数据的转移。RPA 可以模拟人工,从 A 系统把数据搬运到 B 系统。

5. RPA 发展阶段

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

  • RPA 1.0

辅助性 RPA,也叫有人值守 RPA。作为虚拟助手出现的 RPA,覆盖了桌面操作的所有主要自动化功能,然后部署面向员工的 PC 机上,用来提升效率。

  • RPA 2.0

非辅助性 RPA,也叫做无人值守的 RPA,在这个阶段的主要的目标是完成端到端的自动化。

  • RPA 3.0

自主性的 RPA,主要的目标是实现端到端的自动化和成规模的虚拟劳动力,实现多台机器人的流程编排。

  • RPA 4.0

认知性的 RPA,也是 RPA 未来的发展方向。这一阶段主要是运用人工智能、机器学习或自然语言处理等技术实现一些非结构化数据的处理预测或者分析自动处理接受一个任务,然后处理实现一个全过程的端到端自动化。

02

RPA 核心模块

1. 开发平台

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

(1)面向对象:开发者,流程设计人员。

(2)作用:可视化的编程界面,也就是 lowcode 低代码编程,它提供拖拉拽方式进行业务逻辑设计,然后可以进行复杂流程的设计

(3)主要模块

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

  • 流程设计,流程、子流程、第三方库、自定义组件,这些相当于编程领域提供的封装或者复用,从小流程封装为大流程来避免重复造*。

  • 流程调试,支持随机断点、单步调试、单步进入、单步跳出,查看当前上下文的变量信息。

  • 版本管理,可以为当前的流程发布指定特定的版本,也支持回滚到历史的任意版本,允许多个流程设计者同时修改同一个流程。

  • 元素分析器,是流程设计过程当中的必备工具。很多的组件都是以一个元素作为输入参数,执行相应的动作。通过元素分析器,可以很方便地在屏幕上去选择一个目标元素,也就是常说的捕获。

  • 元素录制器,是通过录制一段用户的操作,自动地生成一堆组件。在流程在环境干扰比较小的时候,录制是非常有用的。

  • 数据抓取,抓取屏幕上的结构化信息。

  • 画中画,主要的目的是提供环境的隔离,提供了一层虚拟的会话,将机器人的运行和当前的宿主机隔离开,让机器人在执行的同时,业务人员也能正常地使用电脑,互不干扰。

  • 代码支持,主要是专家模式,可以直接调用组件的API来提供任意复杂度的扩展,允许有编程能力的设计同学进行RPA的能力扩展。

2. 控制中心

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

(1)面向对象:开发者、业务人员。

(2)作用:控制中心是 RPA 机器人的大脑,可以在上面创建任务,然后执行任务,也可以配置任务执行的策略。

(3)主要模块:

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

  • 流程管理,主要是管理已发布的可视化流程。流程是从开发平台编写完成之后,然后发布到这里,可以在这里进行管理。比如导入、导出、查看指定的版本。

  • 机器人管理,主要是管理机器人,包含审核机器人上线、启用机器人、禁用机器人、是否共享机器人,通过 VNC 或者其他远程桌面技术来查看目标继承的桌面。

  • 任务管理,主要是机器人运行的模板。通过选择特定的流程配置特定的参数创建任务,任务创建好以后,控制中心可以根据任务里面的参数的调度信息进行调度。

  • 作业管理,当任务开始运行时,就会产生作业。它是一个动态数据,包含机器人运行时的各种各样的信息。

  • 数据资产,运行日志、运行状态等都是数据资产。可以理解为安全数据库。在权限满足的情况下,可以增删查改指定的数据。同时安全数据库也提供安全字段的概念,比如加密型字段,不能在开发平台或者机器人上直接打印出它的值,应该进行脱敏处理。

  • 权限管理,主要是支持角色管理的权限模型,可以对不同的账号赋予不同的角色,不同的角色赋予不同的功能。

  • 租户管理,主要是对多租户的支持。多租户是单个软件的实例,是一种可以为不同的用户组提供服务的软件架构。比如 SaaS 就是一种多租户架构。一个公司可能有多个子公司,每个子公司可以有一个架构;或者说一个公司多个部门,每个部门可以有一个架构。不同租户之间的数据是完全隔离的。

  • 运维管理,主要是管理 RPA 服务器本身,可以对服务器的资源进行监控等。

  • 报表分析,主要是控制中心提供关于机器人的所有数据,我们可以通过这些数据来进行各种各样的统计分析,比如分析某个流程的执行成功率、某个机器人的执行效率等。

  • 日志审计,主要是安全合规,每一次操作都有留痕,包含 RPA 机器人的相关日志、用户的相关操作日志。

3. RPA 机器人

RPA机器人目的就是为了执行控制中心下发过来的任务,在RPA机器人上也可以手动地执行任务。

4. AI 组件

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

(1)AI 组件应用比较广泛的三个方向

  • 图片抽取信息,比如:身份证抽取、发票抽取、营业执照抽取、银行卡抽取或者火车票信息抽取。

  • 文档抽取信息,比如:采购类的合同、银行业的零售贷款合同、民事判决书、债券募集说明书等。

  • 文档智能分析,比如:文本分类、文本审核、文本摘要、文本标签,提取文本观点、文本评论情感分析。

03

RPA 元素分析器

元素分析器是用于分析当前用户界面的元素的层级和属性,以便后续能够再次去定位到这个元素或者操作这个元素。

1. 元素分析器的术语

  • 用户界面树

它是用户界面的抽象数据结构呈现。用户界面树,包含静态的数据和动态的数据,树上的每一个节点都是用户界面上的一个元素。针对每一个元素,我们可以查看它的属性,可以对元素进行操作测试,比如点击元素、对编辑框设置值。

  • 元素选择器

元素选择器的作用是在用户界面树上定位某个元素或者某组元素。元素选择器可以精确或模糊地定位某个元素。比如找标题为ABC的窗体,找按钮名称为ABC的按钮。

2. 为什么需要元素分析器

元素分析器可以提供统一的简单的方式来自动化,避免去理解种类繁多的UI技术。这样使得流程设计者只需要了解这里有个按钮,然后点击它就可以了,而不是这个按钮出现在不同的界面上有不同的操作方式。

3. 元素分析器的发展历程

(1)绝对坐标

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

  • 应用一,监控屏幕上的特定坐标点的颜色变化,然后进行特定操作。比如监测这个点,它正常的情况下是红色的。当它这个点变为灰色的情况下,就可以按一下 end 键,完成喝药操作。

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

  • 应用二,图像定位,从大图里面去找一张小图。比如这里大图就是这张游戏的背景,小图就是地鼠。可以写一个流程,循环监控屏幕上是否出现了地鼠,出现了以后,就调用鼠标的点击,去点击地鼠中心点的坐标,来实现一个自动点地鼠的流程

(2)选择器

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

选择器主要是基于文档对象模型的,它是把整个 UI 界面抽象成树型数据结构,使用选择器语法进行界面的定位,是最常用的。

(3)目标检测

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

目标检测是 AI 的目标检测算法来进行相关的定位。比如给予一张图片作为输入,它可以把界面上的东西进行分类。但是实际上目标检测用得比较少。

4. 主要任务

认识RPA元素分析器:界面元素是怎么被RPA捕获的?

(1)任务一:元素的定位

  • 基于屏幕坐标点,主要是元素分析器的捕获功能,可以让流程设计者便捷地选择一个目标元素。

  • 基于选择器,通过选择器语法,选择满足条件的某个或某组元素。

  • 基于 CV,通过模板匹配或者相关的 AI 算法目标检测来定位目标元素。在业务程序不支持捕获的时候,CV 非常有用。

(2)任务二:元素的操作

  • 基于方法 AT(AssistiveTechnology),辅助访问技术。比如调用一个按钮的点击功能,或调用一个文本框的设置文本功能。

  • 基于消息,在 Windows 上窗体之间是可以通过消息来进行通讯的。可以利用 windowmessage 来操控元素。

  • 基于键鼠模拟,如果目标元素不支持任何的 AT、消息,可以简单粗暴地利用键鼠模拟来操作。这是最模拟人工的一种方式。所有的场景都可以用。

5. 自动化技术分类

(1)不带 GUI 的自动化

特点就是编写简单,调试容易,运行稳定,不容易受到环境变化的影响。易于维护,运行效率较高。

(2)GUI 的自动化

  • 特点是覆盖范围广,支持 AT,非侵入式,不需要业务应用的源代码或者说 SDK 的接入,就可以操作。

  • GUI 自动化的不稳定的因素。比如随机的弹窗空间属性的变化,系统有 AB 测试使用户的用户的界面显示不同,页面的延时造成空间识别失败,随机弹窗,空间属性变化导致流程失败。

  • 不稳定的因素应对机制

利用模糊匹配的技术来让选择器更加的有弹性。比如一个创意的标题它可能经常变化,但是发现它的前缀或者后缀或者包含的某个文本不太容易变的时候,可以提升控件的识别率。随机页面延时,主要是利用重试机制来解决。

6. RPA 捕获元素原理

(1)win32  API

  • 微软的 Windows 操作系统底层 API,通过 win32 API 来对目标窗体进行识别、操控和获取属性。

  • 优点:非常的高深,很强大,对 Windows 的标准控件支持得相当不错。

  • 缺点:相当的复杂,然后开发的效率低下,不支持自定义的控件。

(2)MSAA(Microsoft Active Accessibility)

  • 提供 Windows 辅助控制能力的一种技术。但 MSA 是提供接口让开发人员可以方便地给残疾人开发可以使用的软件。

  • 优点:用户只需要跟 MC 打交道,通过它的接口可以获取到控件的丰富的信息。支持自定义控件

(3)UIAutomation

在所有支持 WPF 的操作系统上都支持。提供了大多数UI元素可编程访问的能力,抽象了大部分的 UI 框架的公用属性。

(4)JAB(Java Access Bridge)

主要为 Java 信息提供元数据。

(5)SAP Scripting Engine

主要是提供了 SAP 的全面的脚本化支持。通过 SAP 提供的脚本,可以访问 SAP 程序的几乎所有功能。

(6)Citrix Virtual Channel

通过这种虚拟通道技术,可以和虚拟桌面建立连接。可以向虚拟桌面发送虚拟指令,然后来获取业务的所有信息。

(7)RDP Virtual Channel

原理和 Citrix 的类似。但是它的效率没有Citrix 的好。

(8)自动化浏览器

  • selenium,开源的浏览器控制框架,支持大多数的浏览器。

  • Chrome 有两种技术,一种是谷歌插件,允许开发者自定义用户界面体验;一种是 CDP 协议,可以对浏览器进行检查、调试或者监控。

(9)自动化 office

微软提供了一套 COM 接口,通过 COM 技术,通过支持自动化的 IDispatch 接口可以调用任意的方法。比如:操纵 word 设置字体、输入文本;Excel合并单元格、设置单元格格式等等。

刚提到这么多技术,如果逐一对接,对接成本非常非常的高。所以需要元素分析器,完成了所有这些技术的对接,给业务人员和开发人员一个统一的接口,只需要知道界面上鼠标所指的这个元素要进行操作就可以了,然后程序会自动正确的匹配上那个技术,然后去操作它,这样的话降低了使用成本。

04

问答环节

Q1:RPA 和流程挖掘的关系是什么?

A1:流程挖掘是从现在已经存在的日志里面,自动地去生成一个 RPA 流程,我们把它叫流程挖掘。它其实是人工智能在 RPA 上的一个应用,比如业务系统操作日志,通过这个日志可以推理出流程大概应该的样子,然后分析出流程图,通过流程图可以解析出具体的流程,然后甚至可以让这个流程跑起来。而 RPA 和流程挖掘,它们没有绝对的一个关系。流程挖掘更多的是 AI 赋能来达到从需求到流程输出的端到端,是纯智能的判断。

Q2:元素选择器在 Python 调用 Windows32com 进行 office 操作自动化中的作用。

A2:win32 com 是 win32 提供的 Python 操作的 com 组件的一种库。通过这个库可以去操作 office 的接口。Python 是用 win32 com 技术来操作的。通过这种技术的话,我们可以单独的对 office 系列的软件进行一个操作。

Q3:达观用的都是开源接口的整合吗?

A3:达观技术是自研的技术,开源技术有很多局限性,导致了我们 RPA 在操作业务系统当中经常遇到反自动化。然后达观自研的 RPA 捕获引擎融合了开源类似的底层技术,有充分兼容性。