CN113015956B - 用于机器人流程自动化的活动目标选择的系统和方法 - Google Patents
用于机器人流程自动化的活动目标选择的系统和方法 Download PDFInfo
- Publication number
- CN113015956B CN113015956B CN202080004692.0A CN202080004692A CN113015956B CN 113015956 B CN113015956 B CN 113015956B CN 202080004692 A CN202080004692 A CN 202080004692A CN 113015956 B CN113015956 B CN 113015956B
- Authority
- CN
- China
- Prior art keywords
- target
- anchor
- candidate
- text
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
软件机器人被设计为在用户界面的目标元素(例如,按钮、输入字段等)上执行活动(例如,鼠标点击、文本输入等)。机器人的代码规范被配置为包括目标元素的屏幕上图像和由目标元素显示的文本。机器人被配置为根据在用户界面的源代码中指定的元素ID来自动标识在运行时的目标元素,并且当这样的标识失败时,根据机器人的代码中存储的文本和图像来标识目标元素。
Description
背景技术
本发明涉及机器人流程自动化(RPA),并且具体地涉及用于自动标识作为诸如鼠标点击或文本输入等活动的目标的用户界面元素的系统和方法。
RPA是信息技术的新兴领域,其旨在通过使重复计算任务自动化来提高生产率,从而解放人类操作员去从事智力上更为深奥和/或更富有创造力的活动。以自动化为目标的值得注意的任务包括从文档中提取结构化数据以及与用户界面交互(例如填写表单)等。
RPA开发的独特方面旨在简化软件机器人的编程和管理,其最终目标是将RPA技术的应用范围扩展到缺乏高级编程技能或训练的用户。使RPA更加易用的一种方法是开发面向RPA的集成开发环境(IDE),该环境允许经由图形用户界面(GUI)工具对机器人进行编程,而无需进行编码本身。
然而,使与用户界面的交互自动化带来了实质性的技术挑战,例如,明确地标识诸如按钮或表单字段等目标元素。此外,由于在相应软件机器人的设计和运行时之间发生的界面外观(例如,各种元素的位置、配色方案、字体等)的改变,RPA应用可能失败。因此,人们一直有兴趣开发对这样的改变不敏感的强大且可缩放的软件机器人。
发明内容
根据一个方面,一种方法包括:采用计算机系统的至少一个硬件处理器,响应于接收到包括一组目标特征和一组锚点特征的RPA脚本,目标特征表征目标用户界面(UI)的目标元素,锚点特征表征目标UI的锚点元素,自动标识由计算机系统曝光的运行时UI内的目标元素的运行时实例。该方法还包括自动执行重现人类操作员与目标元素的运行时实例的交互的结果的操作,该操作是根据RPA脚本而确定的。该一组目标特征包括:指示目标元素在目标UI的树表示内的位置的目标ID、包括目标UI内的目标元素的图像的目标图像、以及包括由目标UI内的目标元素显示的字符序列的目标文本。该一组锚点特征包括:指示锚点元素在目标UI的树表示内的位置的锚点ID、包括目标UI内的锚点元素的图像的锚点图像、以及包括由目标UI内的锚点元素显示的字符序列的锚点文本。该方法包括根据目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识目标元素的运行时实例。
根据另一方面,一种计算机系统包括被配置为执行自动化目标应用和RPA机器人的至少一个硬件处理器。RPA机器人被配置为:响应于接收到包括一组目标特征和一组锚点特征的RPA脚本,目标特征表征目标UI的目标元素,锚点特征表征目标UI的锚点元素,自动标识由计算机系统曝光的运行时UI内的目标元素的运行时实例。RPA机器人还配置为自动执行重现人类操作员与目标元素的运行时实例的交互的结果的操作,该操作是根据RPA脚本而确定的。该一组目标特征包括:指示目标元素在目标UI的树表示内的位置的目标ID、包括目标UI内的目标元素的图像的目标图像、以及包括由目标UI内的目标元素显示的字符序列的目标文本。该组锚点特征包括:指示锚点元素在目标UI的树表示内的位置的锚点ID、包括目标UI内的锚点元素的图像的锚点图像、以及包括由目标UI内的锚点元素显示的字符序列的锚点文本。自动标识目标元素的运行时实例包括根据目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识目标元素的运行时实例。
根据另一方面,一种非暂态计算机可读介质存储指令,该指令在由被配置为曝光运行时UI的计算机系统的至少一个硬件处理器执行时引起计算机系统:响应于接收到包括一组目标特征和一组锚点特征的RPA脚本,目标特征表征目标UI的目标元素,锚点特征表征目标UI的锚点元素,自动标识由计算机系统曝光的运行时UI内的目标元素的运行时实例。该指令还引起计算机系统自动执行重现人类操作员与目标元素的运行时实例的交互的结果的操作,该操作是根据RPA脚本而确定的。该一组目标特征包括:指示目标元素在目标UI的树表示内的位置的目标ID、包括目标UI内的目标元素的图像的目标图像、以及包括由目标UI内的目标元素显示的字符序列的目标文本。该一组锚点特征包括:指示锚点元素在目标UI的树表示内的位置的锚点ID、包括目标UI内的锚点元素的图像的锚点图像、以及包括由目标UI内的锚点元素显示的字符序列的锚点文本。自动标识目标元素的运行时实例包括根据目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识目标元素的运行时实例。
附图说明
通过阅读以下详细描述并且参考附图,将能够更好地理解本发明的前述方面和优点,在附图中:
图1示出了根据本发明的一些实施例的示例性机器人流程自动化(RPA)系统。
图2示出了根据本发明的一些实施例的在RPA客户端上执行的示例性软件。
图3示出了根据本发明的一些实施例的包括多个用户界面(UI)元素的示例性用户界面。
图4示出了根据本发明的一些实施例的由脚本编写应用执行的示例性步骤序列。
图5示出了根据本发明的一些实施例的示例性用户界面、目标元素和多个候选锚点元素。
图6示出了根据本发明的一些实施例的被执行以自动确定与目标元件相关联的锚点元素的示例性步骤序列。
图7示出了根据本发明的一些实施例的示例性用户界面、目标元素和多个候选锚点位置。
图8示出了根据本发明的一些实施例的由脚本编写应用执行以自动标识与目标元素相关联的锚点元素的替代步骤序列。
图9示出了根据本发明的一些实施例的示例性UI树和表征UI树的节点的示例性元素ID。
图10示出了根据本发明的一些实施例的表征UI元素的各种类型的数据。
图11示出了根据本发明的一些实施例的由RPA机器人执行的示例性步骤序列。
图12示出了根据本发明的一些实施例的由RPA机器人执行以标识运行时目标UI元素的示例性步骤序列。
图13示出了根据本发明的一些实施例的一组示例性元素间距离。
图14示出了根据本发明的一些实施例的另一组示例性元素间距离。
图15示出了根据本发明的一些实施例的示例性元素间角度。
图16示出了根据本发明的一些实施例的两个UI元素之间的示例性重叠程度。
图17示出了被配置为执行本文中描述的方法的计算设备的示例性实施例。
具体实施方式
在以下描述中,应当理解,所有列举的结构间连接可以是直接有效连接或通过中间结构进行的间接有效连接。一组元素包括一个或多个元素。对元素的任何叙述应当理解为是指至少一个元素。多个元素包括至少两个元素。对“或”的任何使用均表示非排他的或。除非另有要求,否则任何描述的方法步骤不必一定以特定图示顺序执行。从第二元素中得到的第一元素(例如,数据)包含等于第二元素的第一元素、以及通过处理第二元素和可选的其他数据而生成的第一元素。根据参数做出确定或决定包括根据参数并且可选地根据其他数据而做出确定或决定。除非另有说明,否则某些数量/数据的指示符可以是数量/数据本身,也可以是不同于数量/数据本身的指示符。计算机程序是执行任务的处理器指令序列。在本发明的一些实施例中描述的计算机程序可以是其他计算机程序的独立软件实体或子实体(例如,子例程、库)。本文中使用的术语“数据库”表示任何有组织的可搜索数据集合。计算机可读介质包括非暂态介质(诸如磁性、光学和半导体存储介质(例如,硬盘、光盘、闪存、DRAM))以及通信链路(诸如导电电缆和光纤链路)。根据一些实施例,本发明尤其提供了包括被编程为执行本文中描述的方法的硬件(例如,一个或多个处理器)的计算机系统、以及对用于执行本文中描述的方法的指令进行编码的计算机可读介质。
以下描述通过示例而非限制的方式示出了本发明的实施例。
图1示出了根据本发明的一些实施例的示例性机器人流程自动化系统。多个RPA客户端10a-10e中的每个表示至少具有硬件处理器、存储器单元和网络适配器的计算设备,该网络适配器使得相应RPA客户端能够连接到计算机网络和/或其他计算设备。示例性RPA客户端10a-10e包括个人计算机、膝上型计算机和平板计算机、以及移动电信设备(例如,智能电话)等。在示例性用例场景中,RPA客户端10a-10d表示属于公司的会计或人力资源部门的台式计算机。所示出的RPA客户端10a-d通过本地通信网络12互连,该本地通信网络12可以包括局域网(LAN)。客户端10a-10d还可以访问扩展网络14,该扩展网络14可以包括广域网(WAN)和/或互联网。在图1的示例性配置中,RPA客户端10e直接连接到扩展网络14。这样的客户端可以表示移动计算机,诸如在各个接入点处连接到网络14的膝上型计算机、平板计算机或移动电话。
在典型的RPA场景中,公司的员工使用业务应用(例如,字处理器、电子表单编辑器、浏览器、电子邮件应用)执行重复性任务,以便例如向各个业务客户开具发票。为了实际执行相应任务,员工执行操作/动作序列(本文中被视为业务流程)。构成开具发票业务流程的一部分的示例性操作可以包括:打开电子表单,查找客户的公司细节,将相应细节复制到发票模板中,填写指示所购买物品的发票字段,切换到电子邮件应用,给相应客户写电子邮件消息,将新创建的发票作为附件添加到相应电子邮件消息,然后点击“发送”按钮。在员工的计算机上执行的RPA软件可以通过模仿由相应人类操作员在执行相应任务的过程中执行的一组操作来自动化相应业务流程。通常以这种自动化为目标的示例性流程包括付款处理、发票开具、与业务客户的通信(例如,电子期刊和/或产品的分发)、内部通信(例如,备忘录、会议和/或任务的安排)、工资单处理等。
在本文中,模仿人类操作/动作应当理解为包括重现当人类操作员在计算机上执行相应操作/动作时发生的计算事件的序列、以及重现人类操作员在计算机上执行相应操作的结果。例如,模仿点击图形用户界面的按钮的动作可以包括使操作系统将鼠标指针移动到相应按钮并且生成鼠标点击事件,或者可以替代地包括将相应GUI按钮本身切换到点击状态。
图2示出了根据本发明的一些实施例的在RPA客户端10上执行的示例性软件。RPA客户端10可以表示图1中的RPA客户端10a-10e中的任何一个。RPA客户端10执行操作系统(OS)40和一组业务应用42。OS 40可以包括任何广泛可用的操作系统,诸如Microsoft或等,该操作系统包括在应用42与RPA客户端10的硬件之间进行接口连接的软件层。业务应用42通常表示由RPA客户10的人类操作员使用以执行任务的任何计算机程序。示例性业务应用42尤其包括字处理器、电子表单应用、图形应用、浏览器、社交媒体应用和电子通信应用。至少一个业务应用42被配置为曝光以自动化为目标的用户界面(UI),如下所述。
在一些实施例中,RPA客户端10还执行RPA机器人44,该RPA机器人44包括共同实现业务流程的自动化的一组互连的计算机程序。示例性RPA机器人使用来自微软公司的Windows Workflow Foundation应用程序编程接口来构造。在一些实施例中,RPA机器人44在RPA客户端10上实例化的单独的专用虚拟机内执行。
RPA机器人44的组件包括RPA代理43和一组机器人执行器45。机器人执行器45被配置为接收RPA脚本50,该RPA脚本50指示模仿人类操作员执行业务流程的动作的操作(在本领域中也称为活动)序列,并且机器人执行器45被配置为在相应客户端计算机上实际执行相应的操作序列。RPA脚本50通常是特定于流程的,即,每个不同的业务流程由不同的一组RPA脚本来描述。RPA脚本50可以根据本领域已知的任何数据规范来制定。在优选实施例中,RPA脚本50被编码成可扩展标记语言(XML)的版本,但是脚本50也可以用诸如C#、VisualBasic、Java等编程语言来制定。替代地,RPA脚本50可以被指定为RPA专用版本的字节码,甚至可以被指定为用诸如英语、西班牙语、日语等自然语言制定的指令序列。在一些实施例中,脚本50被预编译为一组原生处理器指令(例如,机器码)。
在一些实施例中,机器人执行器45包括被配置为将RPA脚本50转换成运行时包的解释器(例如,即时(just-in-time)解释器或编译器),该运行时包包括用于执行在相应脚本中描述的操作的处理器指令。因此,执行脚本50可以包括执行器45转换RPA脚本50并且指示RPA客户端10的处理器将所得到的运行时包加载到存储器中并且启动运行时包以执行。
RPA代理43可以管理机器人执行器45的操作。例如,RPA代理43可以根据来自人类操作员的输入和/或根据时间表来选择由机器人执行器45执行的任务/脚本。代理43还可以配置执行器45的各种操作参数。当机器人44包括多个执行器45时,代理43可以协调其活动和/或进程间通信。RPA代理43还可以管理RPA机器人44与图1所示的RPA系统的其他组件之间的通信。这样的组件可以在其他RPA客户端和/或一组机器人管理服务器11a-11b上执行。在一个这样的示例中,服务器11a-11b可以操作机器人编排器服务以协调跨多个客户端机器的RPA活动并且实现复杂的调度和/或许可证管理。服务器11a-11b还可以从个体RPA机器人接收指示执行RPA脚本的各种中间值和/或结果的数据。这样的数据可以用于生成活动报告,实施许可协议,和/或减轻故障。
在一些实施例中,RPA客户端10还执行脚本编写应用46,该脚本编写应用46被配置为使得RPA客户端10的人类操作员能够创建RPA脚本50并且从而有效地设计机器人来执行一组活动。编写应用46的功能类似于集成开发环境(IDE),包括代码编辑器和/或用户界面,以使得操作员能够与用于对业务流程进行建模的一组工具交互。示例性编写应用可以允许用户选择业务应用42并且指示与相应应用交互的期望方式,例如,指示要由机器人44执行的操作序列。示例性操作包括例如打开特定电子表单,从数据表的特定行/列中读取数据,以特定方式处理相应数据,点击特定按钮,写电子邮件并发送,导航至特定统一记录位置(URL),等等。在一些实施例中,编写应用46以RPA机器人44可读取的格式(例如,XML)输出RPA脚本50。RPA脚本50可以存储在脚本存储库15中,该脚本存储库15经由网络12和/或14可通信地耦合到RPA客户端10a-10e并且可以被RPA客户端10a-10e访问(参见图1)。在优选实施例中,脚本存储库15直接链接到机器人管理服务器11a-11b。脚本存储库15可以被组织为数据库,例如,任何结构化数据集合,以允许根据一组标准来选择性地取回脚本50。
本领域技术人员将理解,并非图2所示的所有组件都需要在同一物理处理器或机器上执行。在典型的RPA配置中,脚本开发/机器人设计是在一台机器(在本领域中通常称为“设计侧”)上执行的。然后,所得到的RPA脚本50被分发给多个其他用户和机器(通常称为“运行时侧”或简称为“运行时”)以执行。
图3示出了根据本发明的一些实施例的示例性用户界面(UI)58。UI 58可以由业务应用42中的任何一个来曝光。用户界面是实现人机交互的计算机界面,例如被配置为接收用户输入并且响应相应输入的界面。用户界面的常见示例被称为图形用户界面(GUI),它使得能够经由向用户显示的一组视觉元素来实现人机交互。说明性UI 58具有一组示例性窗口60a-60b和一组示例性UI元素,包括菜单指示符62a、图标62b、按钮62c和文本框62d。其他示例性UI元素尤其包括窗口、标签、表单、个体表单字段、切换键、链接(例如,超链接、超文本或统一资源标识符)。UI元素可以显示信息,接收输入(文本、鼠标事件),和/或控制软件和/或相应计算机系统的功能。
一些UI元素是交互式的,其意义是,对它们的操作(例如,点击按钮62c)会触发行为/反应。这样的行为/反应通常特定于相应元素或一组元素。例如,点击保存按钮产生与点击打印按钮不同的效果。相同的键盘快捷键(例如,Ctrl-G)当在一个窗口/应用中执行时可以具有一种效果,而当在另一窗口/应用中执行时可以具有完全不同的效果。因此,尽管操作/动作是相同的(执行点击,按下键盘键的组合,写字符序列,等等),但是相应动作的结果可以根本上取决于相应操作的操作数。在本文中,操作数被定义为由当前操作/动作(诸如点击或键盘事件等)所作用的UI元素、或者换言之被选择为接收相应用户输入的UI元素。术语“目标”和“操作数”在本文中可以互换使用。由于UI元素行为是特定于元素的,因此成功的RPA可能需要为每个脚本化RPA活动明确且正确地标识操作数。
图4示出了根据本发明的一些实施例的由脚本编写应用46执行的示例性步骤序列。步骤101曝光目标UI,即,业务应用42的用户界面的设计侧实例,该目标UI是当前自动化的目标。步骤101可以包括例如调用业务应用42的实例。在步骤102中,应用46可以曝光机器人设计界面(例如,GUI),以使得用户能够指示要由机器人44在所曝光的目标UI上执行的期望活动。在一些实施例中,活动可以经由活动菜单的层次结构来接触。活动可以根据各种标准进行分组,例如,根据业务应用的类型(例如,活动、web活动、电子邮件活动)和/或根据交互类型(例如,鼠标活动、热键活动、数据抓取活动、表单填写活动等)。步骤104接收指示相应活动的用户输入。例如,步骤104可以包括拦截鼠标点击事件并且确定用户已经点击以选择活动的菜单项。在另外的步骤106中,应用46可以曝光活动配置界面,以使得用户能够配置相应活动的各种选项和/或参数。一个示例性活动参数是相应活动的操作数/目标UI元素。在活动包括鼠标点击的一个示例中,目标UI元素可以是按钮、菜单项、超链接等。在活动包括填写表单的另一示例中,目标UI元素可以是应当接收相应文本输入的特定表单字段。应用46可以使得用户能够以各种方式指示目标UI元素。例如,它可以邀请用户从候选UI元素的菜单/列表中选择目标元素。在优选实施例中,应用46可以曝光目标UI的实例(即,机器人44应当与之交互的商业应用的UI,例如,MS浏览器、电子邮件程序等),并且突出显示相应UI内的UI元素的子集,以邀请用户点击UI元素以指示选择。在步骤108中,应用46可以例如通过调用某些OS功能以检测鼠标点击并且标识被点击的UI元素来接收并且处理指示所选择的目标元素的用户输入。
接下来,在步骤110中,一些实施例可以自动确定与所选择的目标元素相关联的锚点UI元素。在本文中,锚点元素(或简称为“锚点”)被定义为与相关联的目标UI元素被共同显示的UI元素,其意义在于,目标和锚点在相应用户界面内同时可见。此外,锚点元素和目标元素通常具有语义连接,例如它们都属于UI元素的同一组/容器,和/或它们一起执行功能。与输入字段相关联的示例性锚点元素尤其包括显示在相应输入字段附近的文本标签、以及包括相应输入字段的表单的标题。与按钮相关联的示例性锚点元素包括显示在相应按钮之上的文本、以及同一UI的另一按钮。图5示出了根据本发明的一些实施例的具有目标元素64和多个潜在锚点元素66a-66e的示例性UI 58。
确定目标元素的锚点可以包括从一组候选UI元素中选择锚点,例如,如图6所示。在步骤202中,应用46可以生成从由UI 58显示的一组UI元素中选择的一组候选锚点元素(参见例如图5中的项目66a-66e)。候选锚点元素可以根据相应目标元素的元素类型(例如,按钮、文本、输入字段等)来选择。在一些实施例中,候选锚点可以根据其是否与相应目标属于相同的一组元素/UI容器来选择。例如,当目标元素是表单字段时,一些实施例将仅从属于相同表单字段的UI元素中选择锚点候选。在HTML文档的情况下,一些实施例可以从与目标元素相同的<div>或<span>容器中选择候选标签。
接下来,在步骤204中,应用46可以根据一组标准来评估每个候选锚点元素。在一些实施例中,步骤204包括确定锚点适合度得分,锚点适合度得分可以组合根据不同标准而评估的多个子得分。示例性标准是候选锚点关于目标元素的相对位置。相对位置可以根据相应目标元素与候选锚点元素之间的一组距离、角度和/或重叠程度来确定。这种确定的示例在下面关于图13-16详细描述。一些实施例认为位于目标元素附近和/或与目标元素基本对准的UI元素是相对更可靠的锚点。在这样的实施例中,与更远离所选择的目标元素和/或与所选择的目标元素不对准的其他UI元素相比,这样的UI元素可以获取更高的适合度得分。
其他示例性锚点适合度标准可以包括相应UI元素的图像和/或文本内容。一些实施例偏好文本标签作为锚点元素,因此与显示文本片段的其他UI元素相比,不包含文本的UI元素可以获取相对较低的适合度得分。另一示例性标准可以是由UI元素显示的文本的长度,一些实施例可能更喜欢较小的文本元素,因为它们更可能是标签。在这样的实施例中,与具有大量文本的文本元素相比,相对较小的文本元素可以获取相对较高的适合度得分。
另一示例性标准可以包括具有相似外观的锚点候选的计数,例如,显示完全相同文本的UI元素的计数。在一个示例性场景中,目标UI 58包括旨在收集关于多个人的数据并且具有标记为“姓氏”的多个字段的表单。在这种情况下,“姓氏”标签可能不能可靠地标识特定表单字段。因此,一些实施例可以确定每个锚点候选是否唯一(其意义是,不存在具有相似图像或显示相似文本的其他UI元素),并且当为否时,为相应锚点候选分配相对较低的锚点适合度得分。替代实施例可以将多个锚点分配给同一目标元素,例如,位于相应表单字段附近的标签、以及相应表单或输入块的标题。
然后,步骤206可以比较为候选锚点评估的得分。当有明显的获胜者时,在步骤210中,脚本编写应用46可以选择具有最高适合度得分的候选元素作为与在步骤108中确定的目标元素相关联的锚点元素。在平局的情况下,即,当多个候选具有相同的适合度得分时,一些实施例可以邀请用户明确指示将被用作锚点的UI元素(步骤208)。
自动选择锚点UI元素的另一种方法在图7-图8中示出。相比于其中应用46生成一组候选元素并且然后根据它们相对于目标元素的位置来评估它们的适合度的先前描述的方法,步骤222可以生成UI 58内的候选位置,例如作为一对屏幕坐标{X,Y}。这样的实施例依赖于如下观察:取决于目标UI 58的相应自然语言的默认读方向,可靠锚点(诸如文本标签)通常位于例如它们的相关联的目标的旁边,例如在它们的左侧,或者直接在其上方或下方。因此,一些实施例可以明确地在这样的位置处寻找潜在锚点元素。图7示出了多个候选位置65a-65d。这样的候选位置可以根据目标UI元素的屏幕位置(在图7中表示为项目64)和/或根据目标元素的尺寸来确定。在一些实施例中,候选位置是随机生成的,例如,作为确定性分量和随机分量之和。
接下来,步骤224可以标识位于大约候选位置处的所有UI元素。在一些实施例中,当相应位置在相应元素的屏幕边界内时,该元素被认为位于特定位置。当相应元素的中心/质心与相应位置之间的距离小于预定阈值时,另一实施例可以认为该元素位于特定位置。在图7的示例中,UI元素66可以被认为位于候选位置65a。在一些实施例中,步骤224包括发出对OS 40的原生功能的调用,相应功能被配置为返回占据屏幕的特定区域的UI元素的列表。确定哪些UI元素位于候选位置的其他方法包括解析相应UI的底层源代码(例如,HTML脚本、样式表)。
当没有UI元素位于相应候选位置时,一些实施例返回到步骤222以生成另一候选位置。否则,在步骤226中,脚本编写应用46可以根据一组锚点适合度标准来过滤所标识的一组UI元素。这样的标准尤其可以包括可见性(例如,仅可见UI元素可以被选择为锚点)和元素类型(例如,文本元素可以优于其他类型的UI元素)。其他适合度标准可以类似于以上关于图5-图6描述的那些。例如,应用46可以根据相应UI元素是否与目标元素对准、相应UI元素是否与目标元素实质重叠等来评估定位得分。
当位于候选位置的所有UI元素都不被认为适合作为锚点时(例如,当没有UI元素已经获取超过预定阈值的适合度得分时),一些实施例可以返回到步骤222以生成另一候选位置。否则,步骤232可以选择合格的UI元素作为与相应目标元素相关联的锚点。
响应于标识目标和/或锚点UI元素,在步骤112-114的序列中(图4),脚本编写应用46可以确定相应目标和锚点元素的一组元素特性特征。根据本发明的一些实施例的这样的元素特性特征在图9中被示出,并且尤其包括分别表征目标元件64和锚点元素66的一组元素ID 80a-80b、一组元素文本82a-82b、以及一组元素图像84a-84b。
元素ID 80a-80b将每个UI元素标识为操作系统和/或相应业务应用42,例如,标识为RPA客户端10用于表示和/或渲染相应用户界面的对象层次结构内的特定对象。在一些实施例中,元素ID 80a-80b被包括在接口58的源代码中,例如作为一组属性-值对。在本文中,术语用户界面的源代码被理解为表示由相应用户界面显示的内容的程序表示。源代码可以包括用编程语言编写的程序/脚本、以及驻留在RPA客户端10的存储器中的数据结构。示例性源代码包括HTML文档,该HTML文档由web浏览器应用渲染为网页。
在现代计算平台中,操作系统通常将每个用户界面表示为通常称为UI树的分层数据结构。示例性UI树包括在由浏览器应用渲染的网页之下的文档对象模型(DOM)。图10示出了具有多个节点72a-72e的示例性UI树70。在一些实施例中,每个节点72a-72e包括表示UI58的一部分的对象。在诸如图5所示的UI等示例性UI中,根节点72a可以表示整个UI窗口。它的子节点可以表示个体UI元素(例如,文本框、标签、表单字段、按钮等)、元素组、相应UI的不同区域或块等。诸如图10中的节点72b等中间节点可以表示完整表单,包括其所有输入字段、标签和按钮。例如,节点72c可以表示HTML文档的<form>或<fieldset>容器的内容。中间节点的另一示例可以表示<div>或<span>HTML容器的内容。中间节点的又一示例包括文档的页眉或页脚的内容。诸如72b、72d和72e等末端节点(在本领域中也称为叶节点)是没有进一步的子节点的节点,并且可以表示个体UI元素(例如,按钮、个体标签、个体输入字段)。在网络浏览器UI的示例中,
在一些实施例中,每个节点72a-72e使用一组属性-值对来指定,这些属性-值对可以指示例如相应节点的父节点的身份、相应节点的子节点的身份节点、由相应节点表示的UI元素的名称和类型等。
在一些实施例中,表征UI元素的元素ID包括一组节点标识符,这些节点标识符共同指示节点在UI树70内的位置,相应节点表示相应UI元素。在一个这样的示例中,元素ID80c指示UI树70的节点的子集,本文中称为子树(参见图10中的示例性子树74a-74d)。这样,元素ID 80c将节点/UI元素标识为属于相应子树。例如,节点72d属于子树74c。示例性元素ID 80c包括一组属性-值对,这些属性-值对将相应UI元素标识为在名为“uidouble.exe”的应用的窗口中可见的、名为“Accept”的“按钮”。所示出的格式的元素ID 80c仅作为示例提供;本领域技术人员将理解,除了属性-值对的列表,可能还有多种其他方式来表示特定节点在UI树内的位置。
在一些实施例中,分别确定表征目标元素和锚点元素的元素ID 80a-80b包括解析目标用户界面58的源代码(例如,HTML文档)并且提取相应元素ID,例如作为与每个UI元素相关联的一组属性-值对。
在一些实施例中,每个元素文本82a-82b(图9)包括显示在相应UI元素的屏幕边界内的文本(字母数字字符序列)的计算机编码。在所示出的示例中,元素文本82a的值为“空”,因为目标元素64不显示任何文本。同时,元素文本82b由文本“兑换”组成。文本的计算机编码可以包括例如数字字符代码序列(例如,Unicode),其中每个代码对应于元素文本82a-b的不同字符。
脚本编写应用46的实施例可以使用各种方法来确定元素文本82a-82b。当应用46可以访问UI 58的源代码时,应用46可以尝试从相应源代码中提取元素文本82a-82b。例如,显示在网页的按钮上的标签可以通过解析与相应网页相关联的HTML文档来找到。在其他业务应用42的情况下,脚本编写应用46可以解析OS 40和/或业务应用42的数据结构,以确定元素文本82a-82b是否被包括在UI 58的源代码中。
在替代实施例中,应用46可以采用诸如光学字符识别(OCR)计算机程序等的图像分析工具来确定元素文本82a-82b。在一个这样的示例中,OCR工具可以输入包括相应目标和/或锚点UI元素的屏幕区域的图像,并且返回一组文本标记(例如,单词)和为每个文本标记而确定的边界框。示例性边界框尤其包括外接相应文本标记的多边形和相应标记的凸包。边界框由图9中的文本“兑换”周围的虚线矩形表示。响应于接收到文本标记和边界框,应用46可以确定是否有任何边界框与相应UI元素实质重叠,并且当为是时,选择位于相应边界框内的文本标记作为表征相应目标或锚点UI元素的文本元素82。当相应边界框有足够大的比例(例如,大于50%,通常为80-100%)位于相应UI元素的屏幕边界内时,可以形成实质重叠。
在一些实施例中,表征UI元素的每个元素图像84a-84b(图9)包括在相应UI元素的边界内的显示在屏幕上的图像的计算机编码。图像的计算机编码可以包括对应于相应屏幕区域的像素值阵列(可能有多个通道,例如RGB)、和/或根据相应像素值阵列而计算出的一组值(例如,相应像素值阵列的JPEG或小波表示)。确定每个元素图像84a-84b可以包括抓取UI 58的截图内容,即,UI 58的示出相应UI元素的有限区域的内容。
在另外的步骤116(图4)中,脚本编写应用46可以制定与所选择的RPA活动相对应的RPA脚本。换言之,在步骤116中,应用46将要在运行时要使用的机器人代码输出到例如脚本文件。RPA脚本50可以用本领域已知的任何计算机可读编码来制定,例如以XML版本,或者甚至被编译成原生处理器指令(例如,机器代码)序列。
对于每个活动/自动化步骤,编写应用46可以将相应活动的指示符(例如,点击、键入等)输出到RPA脚本50,并且还可以输出表征在步骤108-110中确定的目标和锚点UI元素的元素ID 80a-80b、元素文本82a-82b和元素图像84a-84b的编码。特性特征的编码可以包括特征数据本身和/或这些数据的其他表示,例如可以用于远程访问元素特性数据的网络位置的指示符(例如,URL、网络地址)。
在一些实施例中,应用46可以例如使用一组属性-值对将用于配置相应活动的一组参数值输出到RPA脚本50。一个示例性参数是匹配准确度,该匹配准确度指示用于将RPA脚本50中保存的设计时元素图像84与候选UI元素的运行时图像进行比较的阈值(参见下面有关图11-12的细节)。另一示例性参数是超时阈值,该超时阈值指示机器人44尝试标识运行时和/或目标UI元素可花费的最大时间量。
在自动化的设计阶段完成之后,可以将RPA脚本50传输给脚本存储库15和/或分发给其他RPA客户端以执行(参见例如图1)。图11示出了由RPA机器人44在运行时执行的示例性步骤序列。响应于接收到RPA脚本50,步骤304根据RPA脚本50的内容来确定要执行的活动的类型。步骤304还可以确定相应机器人被配置为根据RPA脚本50与之交互的目标UI和/或运行时业务应用(例如,MS 等)。在步骤306中,RPA机器人44可以曝光相应目标UI,例如,通过在本地客户端计算机上调用相应业务应用的实例。另外的步骤308可以根据存储在RPA脚本50中的信息来自动标识针对相应活动的运行时目标UI元素。运行时目标UI元素包括相应活动的操作数,即,机器人44被配置为操作(例如,点击,向其中输入一些文本,抓取其内容,等等)的运行时目标UI的UI元素。下面详细描述步骤308的执行。响应于运行时目标UI元素的成功标识,步骤310可以自动执行脚本化活动,即,如RPA脚本50中所示与相应UI元素交互。
图12示出了根据本发明的一些实施例的由机器人44执行以自动标识运行时目标UI元素的示例性步骤序列。在步骤312中,机器人44可以检测与当前活动的目标类型相匹配的UI元素。例如,当相应活动包括键入表单字段时,步骤312可以包括标识运行时UI内的一组表单字段。步骤312可以包括解析运行时目标UI底层的源代码和/或根据运行时UI的屏幕上图像来标识UI元素,例如使用计算机视觉(例如,被训练为自动识别诸如按钮、文本框、输入字段等各种UI元素的神经网络)。当意图目标和/或锚点元素包括文本时,一些实施例还可以采用OCR技术来自动检测文本元素并且为相应文本元素构造边界框。
接下来,考察由步骤312返回的一组UI元素,步骤314可以尝试根据元素ID来标识运行时目标UI元素(参见上面有关图9-10的描述)。在一些实施例中,步骤314包括确定由步骤312返回的集合中的每个UI元素的元素ID,并且将相应元素ID与设计侧目标元素的元素ID(例如,图10中的元素ID 80a)比较,即,与由RPA脚本50指定为表征目标的元素ID比较。步骤316确定是否有任何元素ID与当前活动的意图目标的元素ID相匹配,并且当为是时,步骤318可以选择匹配的UI元素作为运行时目标。在一些实施例中,步骤316确定两个元素ID之间是否存在完全匹配。当元素ID使用一组属性-值对被指定时,当对应属性的所有值都相同时,可能出现完美匹配。
然而,由于在设计时与运行时之间偶尔发生目标用户界面的变化,因此可能发生运行时目标UI的UI元素都不与意图目标的设计时元素ID相匹配的情况。例如,可能发生表单字段的名称已经改变的情况。当没有UI元素与在RPA脚本50中指示的元素ID相匹配时,机器人44可以从可用信息中自动推断当前活动的目标/操作数。本发明的一些实施例使用元素文本82和元素图像84作为替代的后备数据,以在匹配元素ID失败时标识运行时目标。
在一个这样的示例中,步骤322-324的序列可以根据在RPA脚本50中分别为设计侧目标和锚点元素所指定的元素ID来组装一组候选运行时目标元素和一组候选运行时锚点元素。在本文中,使用术语“候选”来表示元素ID分别与意图目标或锚点元素类似的UI元素。可以通过多种方式来确定相似性。在一个示例性实施例中,机器人44可以使用正则表达式来确定两个元素ID是否部分匹配。在示例性正则表达式方法中,当两个元素ID中的特定特征子集相同时(例如,当元素类型相同但元素名称不同时),两个元素ID被视为相似。在元素ID指示元素在UI树中的位置的实施例中,使用正则表达式的部分匹配策略可以允许机器人44在特定子树内搜索候选,例如仅选择具有在其元素ID中指定的相同根节点的候选(参见例如以上关于图10的描述)。例如,如果RPA客户端10具有同时运行的业务应用的多个实例,并且其中只有一个实例具有意图目标元素,则可能会出现这种情况。搜索具有固定节点的候选目标元素可以允许机器人44探查所有相应UI窗口以寻找候选。
另一示例性候选选择策略可以根据在两个元素ID之间不同的特征的计数来确定两个元素ID是否相似。例如,这种方法可以确定两个元素ID之间的Levenshtein距离,并且将相应距离与预定阈值进行比较。间隔距离小于阈值的元素ID可以被认为是相似的。在一些实施例中,阈值可以在设计时被指定并且被包括在RPA脚本50中。与使用正则表达式的部分匹配方法相反,使用Levenshtein距离的方法可能对哪些特征在所比较的两个元素ID之间有所不同不敏感。
响应于选择一组候选运行时目标和一组候选运行时锚点元素,机器人44的一些实施例可以评估成对的候选(例如,目标候选与锚点候选的所有组合)以确定最可能的运行时目标。在一些实施例中,步骤330-332的序列可以根据相应元素的相对屏幕位置以及根据相应对的每个成员的内容(元素文本和/或元素图像)来评估每个对。
对于每对候选,一些实施例可以评估相应目标锚点候选对的定位得分(步骤330),定位得分指示候选目标是意图运行时目标元素的可能性。换言之,在步骤330中,一些实施例根据目标和锚点候选元素的相对位置来确定目标候选是真实的意图运行时目标并且锚点候选是在RPA脚本中指定的锚点元素的可能性。
示例性定位得分可以根据各种标准来确定,例如根据候选锚点与候选目标之间的距离。图13示出了根据本发明的一些实施例的将候选目标元素68(在该示例中为输入字段)与候选锚点元素69(标签)分离的一组示例性距离。可以沿着屏幕的主坐标(例如,水平和垂直)测量相应元素的中心/质心之间的距离d1和d2。对于使用OCR检测的文本元素,可以测量到外接相应文本元素的边界框的中心或质心的距离。可以根据d1和d2评估其他示例性元素间距离,诸如曼哈顿距离、欧几里得距离等。一些实施例依赖于以下观察:锚点元素通常位于其目标元素附近,因此候选锚点与候选目标之间的距离越大,相应对表示设计时目标和锚点元素的可能性就越小。在这样的实施例中,示例性定位得分可以根据1/D或(1-D/Dmax)来确定,其中D表示根据d1和/或d2确定的元素间距离,并且Dmax表示预定阈值,超过该预定阈值,两个UI元素不太可能被视为目标锚点对。
另一示例性定位得分可以根据候选锚点与候选目标元素之间的对准程度来确定。对准可以根据例如图14所示的另一组距离来确定。示例性距离d3将锚点候选69的左侧边缘与目标候选68的左侧边缘分开。同时,距离d4将锚点候选69的顶部边缘与目标候选68的顶部边缘分开。一些实施例依赖于以下观察:锚点通常与其目标元素对准,因此相对较小的d3或d4距离可以与相应锚点和目标候选元素确实是目标锚点对的相对较高的可能性相关。图14仅示出了可以用于测试左侧和/或顶部对准的距离;技术人员将理解,可以修改所示出的距离测量以测试右侧和/或底部对准。示例性适合度得分可以计算为:
其中δ是根据d3和/或d4确定的对准距离,并且δmax是预定阈值,超过该预定阈值,两个UI元素被视为未对准。
另一示例性定位得分可以根据候选锚点与候选目标之间的角度来确定。图15示出了锚点候选69与目标候选68之间的示例性角度A,角度A被确定为连接两个相应元素的中心/质心的直线的角度。在一些实施例中,使用图13中的符号根据距离测量结果来确定角度A,例如A=d2/d1。在一些实施例中,该角度用作确定目标候选与锚点候选的对准程度的媒介。一些实施例可以通过将在运行时计算的目标候选与锚点候选之间的角度与在设计时确定的实际锚点元素与目标元素之间的角度进行比较来计算定位得分。设计时角度可以被包括在RPA脚本50中。设计时角度与运行时角度之间的相对较小的差异可以指示,当前目标锚点候选对所在相对位置与设计时目标和锚点元素的相对位置大致相同,因此可以指示,候选是真正所寻求的运行时目标和锚点元素的可能性较高。根据角度而确定的示例性定位得分可以根据1/|Ad-Ar|来确定,其中Ad表示在设计时确定的真实锚点元素与目标元素之间的角度(例如,在RPA脚本50中指定),并且其中Ar表示在运行时确定的候选目标与候选锚点之间的角度。
另一示例性定位得分可以根据锚点候选元素与目标候选元素之间的重叠程度来确定。图16示出了根据本发明的一些实施例的示例性重叠程度67,重叠程度67被确定为一个元素与另一元素相交的比例,或者换言之,被确定为一个元素中有多少与另一元素重叠。在这样的实施例中,两个不相交的元素具有零重叠,而其中一个元素完全包含另一元素的两个元素具有100%的重叠。一些实施例使用根据重叠程度而确定的定位得分来标识特定锚点,诸如按钮标签。在机器人44正在寻找按钮类型的目标元素的一个这样的示例中,它可以消除没有实质性重叠程度(例如,大于90%)的所有目标锚点候选对。
在另外的步骤332(图12)中,机器人44的一些实施例确定目标锚点候选对的内容得分。内容得分可以根据将目标和锚点候选的屏幕上内容(图像和/或文本)与设计侧目标和锚点的相应内容比较的结果来确定。在一些实施例中,比较屏幕上内容包括评估由目标候选显示的文本与由设计侧目标元素显示的文本之间的相似性的数值度量、以及由锚点候选显示的文本与由设计侧锚点元素显示的文本之间的相似性的另一度量。设计侧目标和锚点元素的元素文本在RPA 50中指定(参见例如图9中的项82a-82b和相关描述)。两个文本片段之间的相似性可以例如使用Levenshtein距离来评估,其中相对较小的距离可以指示所比较的片段之间的相对较高的相似性。
步骤332还可以包括:确定目标候选的图像与设计侧目标元素的图像之间的相似性的数值度量、以及锚点候选的图像与设计侧锚点元素的图像之间的相似性的另一度量。设计侧目标元素和锚点元素的元素图像在RPA脚本50中被指定(参见例如图9中的项84a-84b和相关描述)。两个图像之间的相似性的几种度量在本领域中是已知的。
文本相似性可以独立于图像相似性来使用,或者这两者可以被组合成聚合内容得分。聚合图像和文本方面可以提供一种能够在目标或锚点元素的文本或图像在设计和运行时之间发生变化的情况下更可靠地标识运行时目标元素的方法。在这样的情况下,即使图像内容不匹配,机器人44也可以根据文本内容确定两个UI元素是相似的,反之亦然。而且,在仅目标元素在设计时与运行时之间已经改变而锚点保持大致相同的情况下,将为锚点确定的内容得分与为目标确定的内容得分相结合可以得到一种更稳健的方法。在这样的情况下,机器人44可以能够根据候选锚点的内容来标识运行时目标。
在替代实施例中,机器人44使用步骤330作为目标锚点候选对的过滤器。在一个这样的示例中,对于每个候选对,机器人44可以评估目标候选关于锚点候选的相对位置的一组指示符,例如如以上关于图13-14描述的一组距离。当所评估的距离指示目标和锚点候选不太可能是真正所寻求的运行时目标锚点对时,例如,因为它们相距太远和/或未对准,相应目标锚点候选对不再被考虑用于内容得分评估(步骤332)。由于图像分析通常是资源密集的,因此这种优化可以大大降低标识运行时目标的计算成本。
在步骤336中,机器人44可以根据为一组目标锚点候选对中的每个对确定的定位和/或内容得分来从在步骤322中标识的一组目标候选中选择运行时目标。在一些实施例中,步骤336可以计算每个对的聚合得分,该聚合得分组合为相应对确定的定位和内容得分。得分可以使用本领域中已知的各种方法来组合,例如加权平均值,其中每个得分乘以预定数值权重。权重的值可以指示与相应得分相关联的可靠性程度(例如,更可能正确地标识运行时目标的得分可以被给予相对较高的权重)。
在某些实施例中,将其聚合得分指示具有与在RPA 50中指定的设计侧目标锚点对的最高相似性的对的目标候选元素选择为运行时目标元素。机器人44然后可以继续进行脚本化活动(步骤320),即,将当前活动应用于所选择的运行时目标。
图17示出了被编程为执行本文中描述的一些方法的计算设备的示例性硬件配置。相应计算设备可以表示图1中的RPA客户端10a-10e中的任何一个,例如,如图18所示的个人计算机。诸如移动电话、平板计算机和可穿戴设备等其他计算设备可以具有略微不同的配置。处理器22包括被配置为利用一组信号和/或数据来执行计算和/或逻辑运算的物理设备(例如,微处理器、形成在半导体衬底上的多核集成电路)。这样的信号或数据可以以诸如机器代码等处理器指令的形式被编码和传送给处理器22。处理器22可以包括中央处理单元(CPU)和/或图形处理单元(GPU)的阵列。
存储器单元24可以包括存储在执行操作的过程中由处理器22访问或生成的数据/信号/指令编码的易失性计算机可读介质(例如,动态随机存取存储器DRAM)。输入设备26可以包括计算机键盘、鼠标和麦克风等,包括相应硬件接口和/或适配器,以允许用户将数据和/或指令引入RPA客户端10。输出设备28可以包括显示设备(诸如监测器、扬声器等)以及硬件接口/适配器(诸如图形卡),以使得相应计算设备可以将数据传送给用户。在一些实施例中,输入和输出设备26-28共享公共硬件(例如,触摸屏)。存储设备32包括使得能够进行软件指令和/或数据的非易失性存储、读取和写入的计算机可读介质。示例性存储设备包括磁盘、光盘和闪存设备、以及可移动介质,诸如CD和/或DVD磁盘和驱动器。网络适配器34使得相应计算设备能够连接到电子通信网络(例如,图1中的网络12和14)和/或其他设备/计算机系统。
控制器中心30一般表示多个系统、外围设备和/或芯片组总线、和/或实现处理器22与RPA客户端10的其余硬件组件之间的通信的所有其他电路系统。控制器中心30可以包括存储器控制器、输入/输出(I/O)控制器和中断控制器。取决于硬件制造商,一些这样的控制器可以合并到单个集成电路中,和/或可以与处理器22集成。在另一示例中,控制器中心30可以包括将处理器22连接到存储器24的北桥、和/或将处理器22连接到设备26、28、32和34的南桥。
上述示例性系统和方法通过改进活动目标(即,由机器人软件作用的用户界面元素)的自动标识来促进RPA操作。目标标识提出了一个重大技术问题,因为在典型的RPA应用中,目标用户界面(例如,电子商务网页、会计界面等)的开发和维护与用于与相应界面交互的机器人设计无关。因此,在没有RPA开发人员的知识的情况下,目标UI的功能和/或外观可以改变。因此,成功的RPA取决于标识活动目标的可靠方法,该方法对目标用户界面的设计的变化相对不敏感。
在设计机器人软件时(自动化阶段,通常称为设计时),RPA开发人员调用目标UI的实例,并且指示目标元素和要在相应目标元素上执行的活动。例如,开发人员可以指示目标UI的按钮,并且将机器人配置为点击相应按钮。在另一示例中,开发人员可以指示输入字段并且将机器人配置为将某种文本键入相应输入字段。在又一示例中,开发人员可以指示用户界面的文本框,并且将机器人配置为抓取相应文本框的内容。所得到的机器人代码可以包括目标元素的指示符和相应活动的指示符。然后,机器人代码可以被分发给RPA客户端。
在通常称为运行时的自动化的另一阶段中,客户端计算机可以执行相应机器人,该机器人可以尝试与目标UI的另一客户端实例交互。但是,客户端UI可能与设计侧UI不同。当目标UI包括web界面时,尤其是当相应机器人被设计为与复杂网站交互时,相应用户界面甚至可能在一天内多次改变。相应网站的web开发人员可以调节外观,例如,以改变按钮的位置,改变菜单的组成,和/或改变各种元素的配色方案、字体和大小。因此,即使界面的外观已经改变,机器人软件也可能必须成功标识目标元素。
一些常规RPA系统根据在相应用户界面底层的源代码或数据结构(例如,指定网页的外观和内容的HTML代码)中指定的目标元素的名称或ID来标识目标元素。因此,当相应元素的名称不期望地改变时,这样的系统和方法可能会失败,这种改变可能会非常频繁地发生,特别是因为当前动态生成大量web文档,并且对web文档的各个方面进行算法控制。
与这种常规方法相反,本发明的一些实施例还根据在设计时显示的目标图像和文本来标识目标元素。设计时图像和文本将保存在机器人的代码中并且传输给RPA客户。在运行时,机器人可以标识多个候选目标元素,并且根据元素ID并且进一步根据由相应候选元素显示的图像和文本来评估每个候选目标元素。可以选择与设计时目标元素的ID、图像和文本至少部分匹配的候选来作为运行时目标。然后,机器人可以将脚本化活动应用于所选择的运行时目标元素。
一些实施例可以使用优化策略来节省计算资源,并且因此提高了运行时的RPA效率和用户体验。在第一阶段,机器人可以尝试根据元素ID来标识运行时目标,并且当这种标识失败时(例如,由于UI的源代码中元素的名称已经改变),机器人可以使用文本匹配和/或图像匹配作为后备位置。可以选择候选UI元素使得它们与设计时目标元素的元素ID部分匹配。与元素ID部分匹配可以使得机器人能够在相关候选子组(例如,与设计侧目标元素属于UI的同一区域的候选)内搜索目标元素。
为了进一步提高该方法的稳健性,一些实施例采用目标界面的另一UI元素的通信数据(例如,元素ID、图像和文本数据),该另一元素与目标元素共同显示并且被认为是目标元素的锚点。在运行时,一些实施例可以标识多个候选锚点元素,并且尝试根据元素ID、图像和/或数据将每个候选与设计时锚点相匹配。结合目标元素数据来使用锚点元素数据基于以下假定:目标和锚点在设计时与运行时之间发生变化的可能性较小,因此可以基于表征目标的锚点的数据来成功标识目标。
对本领域的技术人员将很清楚的是,在不脱离本发明的范围的情况下,可以以很多方式改变上述实施例。因此,本发明的范围应当由所附权利要求及其合法等同物确定。
Claims (19)
1.一种用于机器人流程自动化RPA的方法,包括采用计算机系统的至少一个硬件处理器以:
响应于接收到包括一组目标特征和一组锚点特征的RPA脚本,自动标识由所述计算机系统曝光的运行时用户界面UI内的目标元素的运行时实例,所述目标特征表征目标UI的所述目标元素,所述锚点特征表征所述目标UI的锚点元素;以及
自动执行重现人类操作员与所述目标元素的所述运行时实例的交互的结果的操作,所述操作是根据所述RPA脚本而确定的;
其中所述一组目标特征包括:
目标ID,指示所述目标元素在所述目标UI的树表示内的位置,
目标图像,包括所述目标UI内的所述目标元素的图像,以及
目标文本,包括由所述目标UI内的所述目标元素显示的字符序列;
其中所述一组锚点特征包括:
锚点ID,指示所述锚点元素在所述目标UI的所述树表示内的位置,
锚点图像,包括所述目标UI内的所述锚点元素的图像,以及
锚点文本,包括由所述目标UI内的所述锚点元素显示的字符序列;
所述方法包括根据所述目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识所述目标元素的所述运行时实例。
2.根据权利要求1所述的方法,其中自动标识所述目标元素的所述运行时实例包括:
对于所述运行时UI的多个候选UI元素中的每个候选,确定所述每个候选的元素ID是否与所述目标ID完全匹配,所述每个候选的所述元素ID指示所述每个候选在所述运行时UI的树表示内的位置;
作为响应,当所述每个候选的所述元素ID与所述目标ID完全匹配时,将所述每个候选指定为所述目标元素的所述运行时实例;以及
当所述多个候选UI元素中没有候选具有与所述目标ID完全匹配的元素ID时,还根据所述目标图像和所述目标文本来标识所述目标元素的所述运行时实例。
3.根据权利要求2所述的方法,还包括:
根据候选目标的元素ID是否与所述目标ID部分匹配,从所述多个候选UI元素中选择所述候选目标;
根据候选锚点的元素ID是否与所述锚点ID部分匹配,从所述多个候选UI元素中选择所述候选锚点;
响应于选择所述候选目标和所述候选锚点,根据将所述目标文本与由所述候选目标显示的文本比较的结果,并且还根据将所述锚点文本与由所述候选锚点显示的文本比较的结果,确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
4.根据权利要求3所述的方法,还包括:响应于选择所述候选目标和所述候选锚点,还根据将所述目标图像与所述候选目标的屏幕上图像比较的结果,并且还根据将所述锚点图像与所述候选锚点的屏幕上图像比较的结果,确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
5.根据权利要求3所述的方法,还包括:响应于选择所述候选目标和所述候选锚点,还根据所述候选目标相对于所述候选锚点的相对屏幕上位置来确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
6.根据权利要求5所述的方法,其中确定所述相对屏幕上位置包括确定将所述候选目标的中心连接到所述候选锚点的中心的线的角度。
7.根据权利要求5所述的方法,其中确定所述相对屏幕上位置包括确定所述候选目标与所述候选锚点之间的重叠程度。
8.根据权利要求1所述的方法,其中所述交互包括从包括以下各项的组中选择的项:对所述目标元素的所述运行时实例执行鼠标点击,按下键盘键的特定组合,将字符序列写入所述目标元素的所述运行时实例,抓取所述目标元素的所述运行时实例的屏幕上图像,以及抓取由所述目标元素的所述运行时实例显示的文本。
9.根据权利要求1所述的方法,其中所述目标元素包括从包含UI窗口、菜单、按钮、文本区域和表单字段的组中选择的项目。
10.一种用于机器人流程自动化RPA的计算机系统,包括被配置为执行自动化目标应用和RPA机器人的至少一个硬件处理器,其中:
所述自动化目标应用被配置为曝光运行时用户界面UI;以及
所述RPA机器人被配置为:
响应于接收到包括一组目标特征和一组锚点特征的RPA脚本,自动标识所述运行时UI内的目标元素的运行时实例,所述目标特征表征目标UI的所述目标元素,所述锚点特征表征所述目标UI的锚点元素;以及
自动执行重现人类操作员与所述目标元素的所述运行时实例的交互的结果的操作,所述操作是根据所述RPA脚本而确定的;
其中所述一组目标特征包括:
目标ID,指示所述目标元素在所述目标UI的树表示内的位置,
目标图像,包括所述目标UI内的所述目标元素的图像,以及
目标文本,包括由所述目标UI内的所述目标元素显示的字符序列;
其中所述一组锚点特征包括:
锚点ID,指示所述锚点元素在所述目标UI的所述树表示内的位置,
锚点图像,包括所述目标UI内的所述锚点元素的图像,以及
锚点文本,包括由所述目标UI内的所述锚点元素显示的字符序列;
并且其中自动标识所述目标元素的所述运行时实例包括根据所述目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识所述目标元素的所述运行时实例。
11.根据权利要求10所述的计算机系统,其中自动标识所述目标元素的所述运行时实例包括:
对于所述运行时UI的多个候选UI元素中的每个候选,确定所述每个候选的元素ID是否与所述目标ID完全匹配,所述每个候选的所述元素ID指示所述每个候选在所述运行时UI的树表示内的位置;
作为响应,当所述每个候选的所述元素ID与所述目标ID完全匹配时,将所述每个候选指定为所述目标元素的所述运行时实例;以及
当所述多个候选UI元素中没有候选具有与所述目标ID完全匹配的元素ID时,还根据所述目标图像和所述目标文本来标识所述目标元素的所述运行时实例。
12.根据权利要求11所述的计算机系统,其中所述RPA机器人还被配置为:
根据候选目标的元素ID是否与所述目标ID部分匹配,从所述多个候选UI元素中选择所述候选目标;
根据候选锚点的元素ID是否与所述锚点ID部分匹配,从所述多个候选UI元素中选择所述候选锚点;
响应于选择所述候选目标和所述候选锚点,根据将所述目标文本与由所述候选目标显示的文本比较的结果,并且还根据将所述锚点文本与由所述候选锚点显示的文本比较的结果,确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
13.根据权利要求12所述的计算机系统,其中所述RPA机器人还被配置为:响应于选择所述候选目标和所述候选锚点,还根据将所述目标图像与所述候选目标的屏幕上图像比较的结果,并且还根据将所述锚点图像与所述候选锚点的屏幕上图像比较的结果,确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
14.根据权利要求12所述的计算机系统,其中所述RPA机器人还被配置为:响应于选择所述候选目标和所述候选锚点,还根据所述候选目标相对于所述候选锚点的相对屏幕上位置来确定是否要将所述候选目标指定为所述目标元素的所述运行时实例。
15.根据权利要求14所述的计算机系统,其中确定所述相对屏幕上位置包括确定将所述候选目标的中心连接到所述候选锚点的中心的线的角度。
16.根据权利要求14所述的计算机系统,其中确定所述相对屏幕上位置包括确定所述候选目标与所述候选锚点之间的重叠程度。
17.根据权利要求10所述的计算机系统,其中所述交互包括从包括以下各项的组中选择的项:对所述目标元素的所述运行时实例执行鼠标点击,按下键盘键的特定组合,将字符序列写入所述目标元素的所述运行时实例,抓取所述目标元素的所述运行时实例的屏幕上图像,以及抓取由所述目标元素的所述运行时实例显示的文本。
18.根据权利要求10所述的计算机系统,其中所述目标元素包括从包含UI窗口、菜单、按钮、文本区域和表单字段的组中选择的项目。
19.一种存储指令的非暂态计算机可读介质,所述指令在由被配置为曝光运行时用户界面UI的计算机系统的至少一个硬件处理器执行时使所述计算机系统:
响应于接收到包括一组目标特征和一组锚点特征的机器人流程自动化RPA脚本,自动标识所述运行时UI内的目标元素的运行时实例,所述目标特征表征目标UI的所述目标元素,所述锚点特征表征所述目标UI的锚点元素;以及
自动执行重现人类操作员与所述目标元素的所述运行时实例的交互的结果的操作,所述操作是根据所述RPA脚本而确定的;
其中所述一组目标特征包括:
目标ID,指示所述目标元素在所述目标UI的树表示内的位置,
目标图像,包括所述目标UI内的所述目标元素的图像,以及
目标文本,包括由所述目标UI内的所述目标元素显示的字符序列;
其中所述一组锚点特征包括:
锚点ID,指示所述锚点元素在所述目标UI的所述树表示内的位置,
锚点图像,包括所述目标UI内的所述锚点元素的图像,以及
锚点文本,包括由所述目标UI内的所述锚点元素显示的字符序列;
并且其中自动标识所述目标元素的所述运行时实例包括根据所述目标ID、目标图像、目标文本、锚点ID、锚点图像和锚点文本来标识所述目标元素的所述运行时实例。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/601,200 US11249729B2 (en) | 2019-10-14 | 2019-10-14 | Providing image and text data for automatic target selection in robotic process automation |
US16/601,200 | 2019-10-14 | ||
US16/601,272 US10885423B1 (en) | 2019-10-14 | 2019-10-14 | Systems and methods of activity target selection for robotic process automation |
US16/601,272 | 2019-10-14 | ||
PCT/US2020/045974 WO2021076205A1 (en) | 2019-10-14 | 2020-08-12 | Systems and methods of activity target selection for robotic process automation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113015956A CN113015956A (zh) | 2021-06-22 |
CN113015956B true CN113015956B (zh) | 2022-02-18 |
Family
ID=72193681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080004692.0A Active CN113015956B (zh) | 2019-10-14 | 2020-08-12 | 用于机器人流程自动化的活动目标选择的系统和方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4046011A1 (zh) |
JP (1) | JP2022551933A (zh) |
CN (1) | CN113015956B (zh) |
WO (2) | WO2021076204A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268431B (zh) * | 2021-06-24 | 2022-08-19 | 深圳市凯莱特科技股份有限公司 | 一种rpa机器人软件的学习方法 |
CN114035726B (zh) * | 2021-10-19 | 2023-12-22 | 四川新网银行股份有限公司 | 一种机器人流程自动化页面要素识别过程的方法及系统 |
CN114495109A (zh) * | 2022-01-24 | 2022-05-13 | 山东大学 | 基于目标与场景文字匹配的抓取机器人及抓取方法和系统 |
CN114691265A (zh) * | 2022-03-07 | 2022-07-01 | 达而观信息科技(上海)有限公司 | 一种软件界面结构化元素的批量抓取方法 |
CN115268719B (zh) * | 2022-09-30 | 2022-12-20 | 北京弘玑信息技术有限公司 | 一种定位界面上目标元素的方法、介质及电子设备 |
US20240126978A1 (en) * | 2022-10-14 | 2024-04-18 | Google Llc | Determining attributes for elements of displayable content and adding them to an accessibility tree |
CN115495055B (zh) * | 2022-11-03 | 2023-09-08 | 杭州实在智能科技有限公司 | 基于界面区域识别技术的rpa元素匹配方法及系统 |
CN115983221B (zh) * | 2023-03-17 | 2023-06-20 | 杭州实在智能科技有限公司 | 可视化的rpa表格操作录制与自动执行方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075918B1 (en) * | 2014-02-25 | 2015-07-07 | International Business Machines Corporation | System and method for creating change-resilient scripts |
CN109101231A (zh) * | 2018-08-07 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | 脚本代码生成方法、装置、计算机设备和存储介质 |
CN109741118A (zh) * | 2018-06-26 | 2019-05-10 | 平安科技(深圳)有限公司 | 发票开具方法、装置、设备及计算机可读存储介质 |
CN110035088A (zh) * | 2019-04-26 | 2019-07-19 | 厦门商集网络科技有限责任公司 | 基于rpa远程控制操作系统自动登录的方法及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7108192B2 (en) * | 1999-09-17 | 2006-09-19 | Silverbrook Research Pty Ltd | Rotationally symmetric tags |
CN102667696B (zh) * | 2009-11-23 | 2016-04-13 | 惠普发展公司,有限责任合伙企业 | 用于用户界面中的对象标识的系统与方法 |
US9697012B2 (en) * | 2010-10-22 | 2017-07-04 | Hewlett Packard Enterprise Development Lp | Relation-based identification of automation objects |
JP6326742B2 (ja) * | 2013-08-29 | 2018-05-23 | 富士通株式会社 | シナリオ生成プログラム、シナリオ実行プログラム、シナリオ生成方法、シナリオ実行方法、シナリオ生成装置、及びシナリオ実行装置 |
-
2020
- 2020-08-12 WO PCT/US2020/045968 patent/WO2021076204A1/en active Application Filing
- 2020-08-12 CN CN202080004692.0A patent/CN113015956B/zh active Active
- 2020-08-12 WO PCT/US2020/045974 patent/WO2021076205A1/en unknown
- 2020-08-12 EP EP20761097.3A patent/EP4046011A1/en active Pending
- 2020-08-12 JP JP2022521760A patent/JP2022551933A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075918B1 (en) * | 2014-02-25 | 2015-07-07 | International Business Machines Corporation | System and method for creating change-resilient scripts |
CN109741118A (zh) * | 2018-06-26 | 2019-05-10 | 平安科技(深圳)有限公司 | 发票开具方法、装置、设备及计算机可读存储介质 |
CN109101231A (zh) * | 2018-08-07 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | 脚本代码生成方法、装置、计算机设备和存储介质 |
CN110035088A (zh) * | 2019-04-26 | 2019-07-19 | 厦门商集网络科技有限责任公司 | 基于rpa远程控制操作系统自动登录的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021076205A1 (en) | 2021-04-22 |
CN113015956A (zh) | 2021-06-22 |
WO2021076204A1 (en) | 2021-04-22 |
EP4046011A1 (en) | 2022-08-24 |
JP2022551933A (ja) | 2022-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270186B2 (en) | Systems and methods of activity target selection for robotic process automation | |
US11556313B2 (en) | Providing image and text data for automatic target selection in robotic process automation | |
CN113015956B (zh) | 用于机器人流程自动化的活动目标选择的系统和方法 | |
JP7017613B2 (ja) | 自動検出されるターゲットラベルに基づくロボティックプロセスオートメーションアクティビティのネーミング(名付け) | |
US11372517B2 (en) | Fuzzy target selection for robotic process automation | |
US11886895B2 (en) | Enhanced target selection for robotic process automation | |
EP2504748B1 (en) | System and method for object relationship identification in a user interface | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US20230168654A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation | |
JP2023107749A (ja) | ブラウザベースのロボティックプロセスオートメーション(rpa)ロボット設計インターフェース | |
JP2023152695A (ja) | ロボティックプロセスオートメーション(rpa)ロボットを設計するためにブラウザを使用するシステムおよび方法 | |
EP4086755B1 (en) | Robotic process automation (rpa) comprising automatic document scrolling | |
Stephens | Start Here! Fundamentals of Microsoft. NET Programming | |
EP3909722A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |