CN116324697A - 用于机器人过程自动化的用户接口(ui)映射器 - Google Patents
用于机器人过程自动化的用户接口(ui)映射器 Download PDFInfo
- Publication number
- CN116324697A CN116324697A CN202180062739.3A CN202180062739A CN116324697A CN 116324697 A CN116324697 A CN 116324697A CN 202180062739 A CN202180062739 A CN 202180062739A CN 116324697 A CN116324697 A CN 116324697A
- Authority
- CN
- China
- Prior art keywords
- screen
- mapper
- computer program
- application
- elements
- 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.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32128—Gui graphical user interface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40392—Programming, visual robot programming language
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/50—Machine tool, machine tool null till machine tool work handling
- G05B2219/50391—Robot
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种用于机器人过程自动化(RPA)的用户接口(UI)映射器。UI映射器最初可能会捕获UI元素以更快地获取UI元素供以后使用,并允许RPA开发人员“映射”用于自动化应用的UI元素。这可能使可能不具备编程知识的随后开发人员能够使用这些预定义的“目标”UI元素构建RPA工作流。
Description
相关申请的交叉引用
本申请要求2020年9月14日提交的美国非临时专利申请第17/019,679号的权益。该较早提交的申请的主题通过引用整体并入本文。
技术领域
本发明一般涉及机器人过程自动化(RPA),并且更具体地,涉及用于RPA的用户接口(UI)映射器。
背景技术
对于用户接口(UI)中的RPA自动化,开发者通常为每个UI动作构建描述符(例如,选择器)。然而,最初通常没有描述符或其他UI对象。有机地增长UI对象的存储库(即逐项、逐个过程和逐个记录)很慢。因此,改进的方法可能是有益的。
发明内容
本发明的某些实施例可以提供对本领域中当前RPA技术尚未完全标识、理解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及属于用于RPA的UI映射器。
在一个实施例中,一种用于提供被配置为映射UI元素的UI映射器的计算机程序被实施在非暂态计算机可读介质上。该计算机程序被配置为使至少一个处理器提供促使在应用的屏幕中的UI元素的指示的接口。该计算机程序还被配置为使至少一个处理器接收屏幕中的UI元素的一个或多个指示并且将一个或多个指示的UI元素包括在应用的UI树中。UI映射器被配置为在实时模式下操作,所述实时模式提供接口并且接收屏幕上的UI元素的指示。该UI映射器还被配置为在离线模式下操作,其中UI映射器促使对不同屏幕的选择。
在另一个实施例中,一种用于映射用于RPA的UI元素的计算机实现的方法包括由UI映射器提供促使在应用的屏幕中的UI元素的指示的接口。该计算机实现的方法还包括由UI映射器接收屏幕中的UI元素的一个或多个指示,以及由UI映射器将一个或多个指示的UI元素包括在应用的UI树中。该计算机实现的方法还包括由UI映射器或UI对象浏览器将一个或多个指示的UI元素添加到对象存储库以供随后重用。该UI映射器包括由一个或多个应用组织的UI描述符窗格、每应用的一个或多个相应的屏幕以及被包括在UI树中的每屏幕的一个或多个相应的UI元素。
在又一个实施例中,一种用于提供被配置为映射UI元素的UI映射器的计算机程序被实施在非暂态计算机可读介质上。该计算机程序被配置为使至少一个处理器提供促使在应用的屏幕中的UI元素的指示的接口。该计算机程序还被配置为使至少一个处理器接收屏幕中的UI元素的一个或多个指示并且在应用的UI树中包括一个或多个指示的UI元素。该计算机程序还被配置为使至少一个处理器显示包括选定的应用、屏幕或UI元素的属性的属性窗格。当UI元素被选择时,属性窗格包括目标UI元素的属性和用于标识目标UI元素的一个或多个UI描述符。
附图说明
为了容易理解本发明的某些实施例的优点,上面简要描述的本发明的更具体的描述将参考附图中所示的具体实施例来呈现。虽然应该理解这些附图仅描绘了本发明的典型实施例并且因此不应被认为是对其范围的限制,但是本发明将通过使用附图以附加的特异性和细节来描述和解释,在附图中:
图1是示出根据本发明的实施例的机器人过程自动化(RPA)系统的架构图。
图2是示出根据本发明的实施例的部署的RPA系统的架构图。
图3是示出根据本发明的实施例的设计器、活动和驱动器之间的关系的架构图。
图4是示出根据本发明的实施例的RPA系统的架构图。
图5是示出根据本发明的实施例的被配置为提供用于RPA的UI映射器的计算系统的架构图。
图6A示出了根据本发明的实施例的处于折叠模式的UI映射器。
图6B示出了根据本发明的实施例的处于扩展模式的UI映射器。
图6C示出了根据本发明的实施例的没有UI元素被选择的实时应用屏幕。
图6D示出了根据本发明的实施例的在目标和锚UI元素已经被选择之后的实时应用屏幕。
图7是示出根据本发明的实施例的用于UI映射器的过程的流程图。
除非另有说明,相似的附图标记在整个附图中始终表示对应的特征。
具体实施方式
一些实施例涉及用于RPA的UI映射器。UI映射器可以首先捕获UI元素以更快地获取UI元素供以后使用。UI映射器可以允许RPA开发者“映射”用于自动化应用的UI元素,这样可能不具备编程知识的后续开发者可以使用这些预定义的“目标”UI元素构建RPA工作流。
屏幕上的UI元素(例如,文本字段、按钮、标签、菜单、复选框等)可以按应用、应用版本、应用屏幕和UI元素的集合进行分组。每个屏幕通常有多个UI元素。如本文所使用的,“屏幕”是指应用的某个状态。此状态可能具有某个图像或查看某个时间点,但元素的层次结构可能存在于“在引擎盖下”,诸如UI元素、容器等)。在此上下文中,“应用”或给定应用的版本可以是屏幕的联合。在一些实施例中,每个UI元素可以由一个或多个UI描述符来描述。
UI元素、应用和应用屏幕是UI对象。在一些实施例中,UI元素、应用和应用屏幕可以具有某个有序结构。例如,应用可能包含应用屏幕,而应用屏幕可能包含UI元素。在一些实施例中,应用可以具有多个应用屏幕,并且每个屏幕可以具有多个UI元素。在一些实施例中,UI元素和屏幕还可以区分为特定类型的UI元素(例如,按钮、复选框、文本字段等)和屏幕(例如,顶部窗口、模态窗口、弹出窗口等)。
UI对象浏览器可以接入UI对象的库,这些UI对象可以按应用、应用版本、应用屏幕、UI元素的集合、它们的组合等来分组。在一些实施例中,UI对象库可以存储在UI对象存储库中。如本文中所使用的,UI对象存储库是UI对象库的集合。在一些实施例中,UI对象存储库可以是NuGetTM源、web服务等。
UI对象浏览器可以在一些实施例中用于导航、管理和编辑UI对象存储库中的UI对象库。一些实施例中的UI对象库的UI对象存储库可以促使项目中UI描述符的管理、重用和增加可靠性。在一些实施例中,UI描述符可以被添加到UI库并被发布或重新发布以供在UI对象存储库中全局重用。UI对象浏览器通过提供对UI对象存储库及其UI对象库的接入,可以促使UI元素标识框架及其派生物的可重用性。
为了使UI对象可重用,它们可以被提取到可以被RPA过程引用的UI对象库中。例如当选择器或其他UI描述符由于应用的新版本而被修改时,库可以被重新创建(或重新发布)以包括经修改的UI描述符。使用UI对象库的RPA过程然后可以调用经修改的UI描述符版本。对与新库相关联的新应用编程接口(API)的引用可以由开发者针对RPA过程手动修改,经由软件工具(例如,通过RPA过程并在选择器或其其他组件改变时更新UI描述符引用的工具)修改,或者在一些实施例中由任何合适的机制自动修改。
在一些实施例中,UI对象的包可以被附接为依赖项(例如,NuGetTM包)。然而,在某些实施例中,UI对象可以经由对web服务的一个或多个API调用来获得。这使得UI对象能够在自动化期间被远程存储、获取和使用。
添加到UI对象库的UI元素可以表示用于RPA工作流的选择器。为了在UI中自动执行特定操作,RPA机器人可以与各种窗口、按钮、下拉列表和/或其他图形元素交互。通常,这是使用UI元素的期望屏幕定位来完成的。然而,这并不可靠。
一些实施例使用选择器,其通过将UI元素及其父的属性存储在可扩展标记语言(XML)片段中来克服与固定坐标标识相关联的问题。虽然选择器在UI是静态的一些实施例中可以自动被生成,但一些软件程序(诸如一些web应用)具有不断变化的布局和具有易变值的属性节点。这些变化可能不容易被预测,并且这先前需要手动生成一些选择器。然而,一些实施例的对象浏览器可以克服这个问题。
在一些实施例中,选择器是一种类型的可以用于检测UI元素的UI描述符。在一些实施例中,选择器具有以下结构:
<node_1/><node_2/>...<node_N/>
最后一个节点表示感兴趣的GUI元素,所有先前的节点表示该元素的父。<node_1>通常被称为根节点,并且表示应用的顶窗口。
每个节点可以具有一个或多个属性,这些属性有助于正确标识选定的应用的特定水平。在一些实施例中每个节点具有以下格式:
<ui_system attr_name_1='attr_value_1'...attr_name_N='attr_value_N'/>
每个属性都可以有一个指定的值,并且可以选择具有恒定值的属性。这是因为每次开始应用时改变属性的值可能会引起选择器无法正确标识相关联的元素。
UI对象库描述符可以直接添加到RPA工作流活动,从而节省开发者时间,否则可能需要为该活动创建自定义选择器。对象浏览器可以提供一个数据库,该数据库将创建的选择器存储在对象库中,以实现UI描述符的可重用性。对象库在本文中被定义为与来自某个版本的应用的一个或多个屏幕相对应的UI描述符的集合。UI描述符是用于查找UI元素的指令集合。一些实施例中的UI描述符是封装的数据/结构格式,包括(多个)UI元素选择器、(多个)锚选择器、(多个)计算机视觉(CV)描述符、(多个)统一目标描述符、(多个)屏幕图像捕获(上下文)、元素图像捕获、其他元数据(例如,应用和应用版本)、它们的组合等。封装的数据/结构格式可以随着对平台的未来更新而扩展,并且不限于上述定义。在不脱离本发明的范围的情况下,可以使用用于标识屏幕上的UI元素的任何合适的UI描述符。一个统一的目标描述符将多种类型的UI描述符链接在一起。统一的目标描述符可以像有限状态机(FSM)一样起作用,其中在第一个上下文中,第一UI描述符机制被应用,在第二个上下文中,第二UI描述符被应用,等等。
在一些实施例中,RPA设计器应用可以询问用户用户计划自动化什么类型的应用。例如,用户可以指定等。应用可以利用关于如何自动化这些应用的逻辑来编程,因为RPA应用已经在UI对象库中包含用于那些应用的屏幕描述符。用于这些应用的各种版本的开箱即用选择器可能可用,并且用户可以能够指定要自动化的(多个)版本。
在一些实施例中,模糊匹配可以被采用,其中一个或多个属性应该在某个范围内以某个准确度(例如,70%匹配、80%匹配、99%匹配等)、使用字符串度量(例如,Levenshtein距离、Hamming距离、Jaro-Winkler距离等)、它们的组合等匹配。本领域的普通技术人员将理解,相似度测量可以量化相似度的量,以及两个属性值之间的不匹配量。此外,在各种实施例中,相似度阈值可表示匹配所需的最大失配量或最小相似度量。
取决于所挑选的计算相似度测量的方式,相似度阈值可以有各种解释。例如,相似度阈值可以指示两个字符串之间可能不同的最大字符数,或者被计算为字符总数(例如,组合的字符串长度)的比例的不匹配的分数程度。在一些实施例中,相似度阈值可以重新缩放到预定间隔,诸如0和1之间、0和100之间、7和34之间等。在一个非限制性示例中,相对高的相似度阈值(例如,接近于1或100%)指示几乎完全匹配的要求,即运行时目标中模糊属性的值只允许与设计时目标中相应属性的值有很小的偏差。与之相对照,当相似度阈值相对较低(例如,接近于0)时,相应模糊属性的几乎任何值都被认为是匹配的。
在某些实施例中,匹配容限可以以每属性为单位不同。例如,一个或多个属性可能需要精确匹配(例如,它可能期望找到某个确切的名称),而模糊匹配可能对一个或多个其他属性执行。在一些实施例中,从每个图形元素检测技术使用的属性的数目和/或类型可以由RPA开发者自定义指定。
在一些实施例中,属性可以存储为属性-值对和/或属性-值-容差对(例如,模糊匹配)。在一些实施例中,属性值对可以指示由相应节点表示的UI元素的名称和类型。然而,本领域的技术人员将理解,在不脱离本发明的范围的情况下,除了属性-值对的列表之外,可以有多种方式来表示特定节点在UI树内的位置。
在一些实施例中,这些属性-值对和/或属性-值-容差对可以存储在标签中,并且每个标签可以包括字符序列,该字符序列由实现特定的定界符(例如,以“<”开头并且以“/>”结尾)以书名号结束。在一些实施例中,属性-值对可以指示由相应节点表示的UI元素的名称和类型。然而,本领域的技术人员将理解,在不脱离本发明的范围的情况下,除了属性-值对的列表之外,可以有多种方式来表示特定节点在UI树内的位置。
为了使能通过RPA机器人的成功且理想地明确标识,一些实施例使用表征相应UI元素的元素ID来表示每个UI元素。在一些实施例中,元素ID指示目标节点在UI树中的位置,其中目标节点表示相应的UI元素。例如,元素ID可以将目标节点/UI元素标识为选定的节点子集的成员。选定的节点子集可以形成谱系,即通过UI树的下降线,其中每个节点是另一个节点的祖先或后代。
在一些实施例中,元素ID包括节点指示符的有序序列,该序列跟踪通过UI树的谱系路径,并且该路径结束于相应的目标节点/UI元素。每个节点指示符可以表示相应UI的对象层级的成员及其在与相应层级一致的序列内的定位。例如,序列的每个成员都可以表示先前成员的后代(例如,子节点),并且可以具有作为后代(例如,子节点)的后续成员。在一个超文本标记语言(HTML)示例中,表示单个表单字段的元素ID可以指示相应的表单字段是HTML表单的子项,而HTML表单又是网页特定部分的子项,等等。在一些实施例中,谱系不需要是完整的。
一些实施例可以使用一个或多个多锚匹配属性。锚是可用于帮助唯一标识目标UI元素的其他UI元素。例如,如果多个文本字段被包括在UI中,仅搜索文本字段不足以唯一标识给定的文本字段。因此,一些实施例寻找附加信息以便唯一地标识给定的UI元素。使用文本字段示例,用于输入名字的文本字段可能出现在标签“名字”的右侧。这个名字标签可以设置为“锚”以帮助唯一标识文本字段,即“目标”。
在一些实施例中可以使用目标和锚之间的各种定位和/或几何关联,可能在一个或多个容差内,以唯一地识别目标。例如,用于锚和目标的边界框的中心可用于定义线段。然后该线段可以被要求具有在容差内的特定长度和/或在容差内的斜率以使用目标/锚对唯一地标识目标。然而,在不脱离本发明的范围的情况下,与目标和/或锚相关联的位置的任何期望定位可以在一些实施例中被使用。例如,用于绘制线段的点可能在中心、左上角、右上角、左下角、右下角、边界框边界上的任何其他位置、边界框内的任何位置、如关于边界框性质标识的边界框外的位置等。在某些实施例中,目标和一个或多个锚可在它们的用于几何匹配的边界框内或外具有不同的位置。
综上所述,单个锚可能并不总是足以以某个置信度唯一地标识屏幕上的目标元素。例如,考虑一个web表单,其中两个用于输入名称的文本字段出现在屏幕上不同位置的相应标签“名称”的右侧。在此示例中,一个或多个附加锚可能有助于唯一地标识给定目标。锚和目标之间的几何特性(例如,线段长度、角度和/或具有容差的相对位置)可用于唯一地标识目标。可能需要用户继续添加锚,直到用于目标的匹配强度超过阈值。
如本文所用,术语“用户”和“开发者”可互换使用。用户/开发者可能有也可能没有编程和/或技术知识。例如,在一些实施例中,用户/开发者可以通过配置RPA工作流中的活动来创建RPA工作流,而无需手动编码。在某些实施例中,这可以通过例如点击和拖放各种特征来完成。
UI描述符可以从RPA工作流中的活动中提取并添加到结构化方案,该结构化方案按UI应用、屏幕和UI元素对UI描述符分组。在一些实施例中,UI描述符可以是用于广泛重用的一个项目的一部分、用于测试目的的全局存储库的一部分、或者用于全局跨项目共享的UI对象库的一部分。一些实施例中的对象库是按应用、应用版本和屏幕分组的UI描述符的封装。UI描述符可以被定义并被添加到对象库中,在一些实施例中该对象库可以在发布后作为依赖性安装在其他项目中。这使得UI描述符的对象库可供重用。一些实施例中的UI应用是具有多个版本的目标应用,其中每个版本具有多个屏幕。
由于多种原因,UI对象存储库和UI描述符重用可能是有益的。例如,如果应用中UI元素的位置、外观和/或功能改变,则UI描述符可以被改变,然后该改变可以使用UI描述符被传播到活动。因此,可重用性可以在标识UI中的图形元素的水平处被提供。
这对于适应新版本的应用可能特别有益。对于新版本,软件开发者可能只需要更新UI描述符和/或从头开始开发一些新的选择器,大大减少开发时间。例如,对于网页,超文本标记语言(HTML)可以被调查以获得用于对应选择器的UI元素的路径。用于对应UI元素的选择器在不同的web浏览器和/或相同的web浏览器的不同版本中可能不同。这个概念可能也适用于可视桌面、服务器、智能手机和平板电脑应用。UI对象库可能包含用于应用的实际选择器,根据上述内容,这只是一种类型的UI描述符。一个UI对象库可能有用于一个或多个应用的多个不同类型的UI描述符。UI描述符还可以指构建应用所利用的不同技术。例如,不同的UI描述符可以针对独立的桌面、web和移动应用被创建和使用。对于一种技术,可能想要使用选择器,对于另一种技术,可能想要使用CV描述符等。
UI描述符可以与包含在一些实施例中图像检测和定义通过其被执行的所有UI检测机制的统一目标一起工作。统一目标可以将标识和自动化UI元素的多个技术合并到单个内聚方法中。统一目标可以使基于选择器和基于驱动程序的UI检测机制优先化,并且如果前两种机制不成功,则回退到CV以查找图像。在一些实施例中,选择器编辑器和UI浏览器可以被配置为支持统一目标。
在一些实施例中,设计器应用包括作为从一个或多个源加载对象库的“对象浏览器”的部分或面板。该对象浏览器可以允许用户可视化整个UI对象集并经由拖放和向导或上下文操作使用任何UI描述符。这可能允许用户挑选要在RPA工作流活动中执行的操作,诸如点击、得到文本、键入等。
下面提供了对象库结构的示例。
·SAP
·版本1
·屏幕1
·对象1
·对象2
·……
·屏幕2……
·……
·版本2……
·……
·销售队伍……
·……
应当注意,上面的层级仅以示例的方式提供。在不脱离本发明的范围的情况下,层次结构中的任何期望数目的水平和与每个水平相关联的元素可以被使用。在某些实施例中,用户可以根据他或她的需要定义应用地图。此外,在一些实施例中,树中的一些节点可能仅起到管理作用而不起到功能作用。例如,UI元素可能会被分组在一起到一个没有UI描述符的容器中。在一些实施例中,容器可能仅出于分组的目的而存在。
在一些实施例中,例如,当OLDB被配置在UiPath StudioTM中时,“在屏幕上指示”可以查看OLDB并拾取UI描述符(如果可用)。如果UI描述符不可用,则UI描述符可以由用户通过指示缺少的UI元素来定义。然后UI描述符可以在UI对象库中被生成和发布。
在一些实施例中,UI描述符和UI对象存储库的使用创建可以进一步扩展的关系和数据。在一些实施例中,来自自动化过程的UI步骤可以被映射到单个屏幕。例如,包含用户可以在其中添加和获取一些数据并且然后点击提交的表单的屏幕可以利用包含屏幕截图和在该屏幕上执行的每个UI步骤的单个屏幕截图来记录,诸如:(1)复制的数量;(2)复制的编号;(3)添加的名称;以及(4)点击“OK”。
用户接口(UI)映射器
如果给定屏幕具有大量不同的UI元素,可能花费一些时间来为每个屏幕一个接一个地获取它们。因此,一些实施例采用在一次通过中从应用的屏幕捕获多个UI对象的UI映射器。这可能允许用于随后屏幕的UI对象的获取发生较快。在一些实施例中,计算机视觉(CV)可用于自动将屏幕捕获到对象存储库,并且UI映射器可用于将UI元素从屏幕添加到对象存储库。
在第一阶段,用户可以手动捕获UI元素和/或计算机视觉(CV)可以被使用以检测屏幕上的UI元素并将它们建议给用户。用户可以通过重新排序它们来管理UI元素,将它们分组到窗口中,提供除屏幕水平以外的UI元素范围等。关于使用其他UI元素范围,可能会出现用户不想使用整个应用屏幕,而是想使用其分组组件的一个或多个容器。例如,容器可以是屏幕内的单个窗格、菜单下拉列表等。
在一些实施例中,UI映射器是一种工具,它允许RPA开发器快速构建UI对象的存储库并将它们安排在应用和屏幕的层次结构中,因此UI对象可以很容易地用于随后的自动化。在一些实施例中,UI映射器可以从对象浏览器工具栏开始。从高水平的角度来看,UI映射器工具是对象浏览器与选择屏幕的组合。对象浏览器可用作用于组织目的的库/树,而选择屏幕和性质窗格(又名“助手”)用于配置个人目标。在一些实施例中,将对象添加到存储库中可以批量或单独地完成。这两种技术都可以允许编辑UI对象的高级设置。在一些实施例中,用户可能能够添加应用、屏幕和其他组织分组,批量或一个接一个地添加UI元素,删除UI对象(例如UI元素、屏幕、应用、组等),编辑现有的UI元素(例如,添加/删除锚、编辑选择器等),突出显示UI元素(例如,一个UI元素、多个UI元素、所有UI元素等),与目标应用交互等。
某些实施例可以用于机器人过程自动化(RPA)。图1是示出根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以促使自动化项目的开发,自动化项目是业务过程的图形表示。简而言之,设计器110促使了工作流和机器人的开发和部署。
自动化项目通过让开发者控制执行顺序和在工作流中开发的自定义步骤集之间的关系来使能基于规则的过程的自动化,本文中定义为“活动”。设计器110的一个实施例的一个商业示例是UiPath StudioTM。每个活动可以包括一个动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可能特别适用于线性过程,可以在不使工作流混乱的情况下实现从一项活动到另一项活动的流动。流程图可能特别适合较复杂的业务逻辑,通过多个分支逻辑运算符以较多样化的方式实现决策集成和活动连接。FSM可能特别适合大型工作流。FSM可以在其执行中使用有限数目的状态,这些状态由条件(即转换)或活动触发。全局异常处理程序可能特别适用于在遇到执行错误时确定工作流行为以及调试过程。
一旦在设计器110中开发了工作流,业务过程的执行就由指挥器120编排,指挥器120编排一个或多个机器人130,机器人130执行在设计器110中开发的工作流。指挥器120的实施例的一个商业示例是UiPath OrchestratorTM。指挥器120促使环境中资源的创建、监测和部署的管理。指挥器120可以充当与第三方解决方案和应用的集成点或聚合点之一。
指挥器120可以管理机器人130的机群,从集中点连接和执行机器人130。可以管理的机器人130的类型包括但不限于有人值守机器人132、无人值守机器人134、开发机器人(类似于无人值守机器人134,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人132,但用于开发和测试目的)。有人值守的机器人132可以由用户事件触发或被调度自动发生,并在相同的计算系统上与人类一起操作。有人值守机器人132可以与指挥器120一起使用,用于集中处理部署和日志记录介质。有人值守机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,过程不能从这种类型的机器人上的指挥器120开始和/或它们不能在锁定的屏幕下运行。在某些实施例中,有人值守的机器人132只能从机器人托盘或从命令提示符开始。在一些实施例中,有人值守机器人132应该在人类监督下运行。
无人值守机器人134在虚拟环境或物理机器上无人值守地运行,并且可以使许多过程自动化。无人值守机器人134可以负责远程执行、监测、调度和为工作队列提供支持。在一些实施例中,用于所有机器人类型的调试可以从设计器110运行。有人值守和无人值守机器人两者都可以自动化各种系统和应用,包括但不限于主机、web应用、VM、企业应用(例如,由等生产的那些)和计算系统应用(例如,台式机和笔记本电脑应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应、部署、版本控制、配置、排队、监测、日志记录和/或提供互连。供应可以包括创建和维护机器人130和指挥器120之间的连接(例如,web应用)。部署可以包括确保将包版本正确地传递给指定的机器人130以供执行。在一些实施例中,版本控制可以包括对一些过程或配置的唯一实例的管理。配置可能包括机器人环境和过程配置的维护和交付。排队可以包括提供队列和队列项的管理。监测可能包括跟踪机器人标识数据和维护用户权限。日志记录可能包括将日志存储和索引到数据库(例如,SQL数据库)和/或其他存储机制(例如,它提供存储和快速查询大型数据集的能力)。指挥器120可以通过充当用于第三方解决方案和/或应用的集中通信点来提供互连。
机器人130是运行在设计器110中构件的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130默认安装Microsoft服务控制管理器(SCM)管理的服务。因此,这样的机器人130可以在本地系统帐户下打开交互式/>会话,并具有/>服务的权利。
在一些实施例中,机器人130可以以用户模式安装。对于这样的机器人130,这意味着它们具有与已经被安装的给定机器人130的用户相同的权利。此功能也可用于高密度(HD)机器人,以确保以最大潜力充分利用每台机器。在一些实施例中,任何类型的机器人130都可以配置在HD环境中。
在一些实施例中,机器人130被划分成几个组件,每个组件专用于特定的自动化任务。一些实施例中的机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理和命令行。SCM管理的机器人服务管理和监测会话,并充当指挥器120和执行主机(即,机器人130在其上被执行的计算系统)之间的代理。这些服务受信任并管理针对机器人130的凭证。控制台应用由本地系统下的SCM启动。
在一些实施例中,用户模式机器人服务管理和监测会话,并充当指挥器120和执行主机之间的代理。用户模式机器人服务可以受信任并管理针对机器人130的凭证。如果SCM管理的机器人服务未被安装,则/>应用可以被自动启动。
执行器可以在会话下运行给定的作业(即,它们可以执行工作流)。执行器可以知道每监测器的每英寸点数(DPI)设置。代理可以是/>Presentation Foundation(WPF)应用,其在系统托盘窗口中显示可用作业。代理可以是服务的客户端。代理可以请求开始或停止作业并改变设置。命令行是服务的客户端。命令行是控制台应用,其可以请求开始工作并等待他们的输出。
将机器人130的组件如上所述拆分有助于开发者、支持用户和计算系统更容易地运行、标识和跟踪每个组件正在执行的内容。特殊行为可以通过这种方式针对每个组件而被配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可能总是知道每监测器的DPI设置。因此,工作流可以在任何DPI执行,而不管创建它们的计算系统的配置。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放水平。对于不知道DPI或有意标记为不知道的应用,在一些实施例中DPI可以被禁用。
图2是示出根据本发明的实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或者可以是其一部分。应当注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数目的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可能不在计算系统210上运行。执行器212正在运行过程。几个业务项目可以同时运行,如图2所示。在该实施例中,代理214(例如,服务)是用于所有执行器212的单个联系点。该实施例中的所有消息都被日志记录到指挥器230中,指挥器230经由数据库服务器240、索引器服务器250或两者进一步处理它们。如上面关于图1所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称和用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行多个交互式会话的计算系统(例如,服务器2012)上,多个机器人可能同时被运行,每个机器人都在一个分开的/>会话中使用唯一的用户名。这在上面被称为HD机器人。
代理214还负责发送机器人的状态(例如,定期发送指示机器人仍在运行的“心跳”消息)并下载要执行的包的所需版本。在一些实施例中,代理214和指挥器230之间的通信总是由代理214发起。在通知场景中,代理214可以打开WebSocket信道,该信道稍后由指挥器230使用以向机器人发送命令(例如,开始、停止等)。
在服务器侧,表示层(web应用232、开放数据协议(OData)代表性状态传送(REST)应用程序编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)和持久层(数据库服务器240和索引器服务器250)被包括在内。指挥器230包括web应用232、OData REST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在指挥器220的接口中执行的大多数动作(例如,经由浏览器220)通过调用各种API来执行。在不脱离本发明的范围的情况下,这样的动作可包括但不限于在机器人上开始作业、添加/移除队列中的数据、调度作业以无人值守地运行等。web应用232是服务器平台的可视层。在这个实施例中,web应用232使用超文本标记语言(HTML)和JavaScript(JS)。然而,在不脱离本发明的范围的情况下,任何期望的标记语言、脚本语言或任何其他格式可以被使用。在这个实施例中,用户经由浏览器220与来自web应用232的网页交互,以便执行各种动作来控制指挥器230。例如,用户可以创建机器人组、将包分配给机器人、分析每机器人和/或每个过程的日志、开始和停止机器人等。
除了web应用232之外,指挥器230还包括暴露OData REST API端点234的服务层。然而,在不脱离本发明的范围的情况下,其他端点可以被包括。REST API由Web应用232和代理214两者消耗。在该实施例中,代理214是客户端计算机上的一个或多个机器人的主管。
该实施例中的REST API涵盖配置、日志记录、监测和排队功能。在一些实施例中,配置端点可用于定义和配置应用用户、权限、机器人、资产、发布和环境。日志记录REST端点可用于日志记录不同的信息,诸如错误、由机器人发送的显式消息以及其他环境特定的信息。部署REST端点可以被机器人使用来查询在开始作业命令在引导器230中被使用的情况下应该执行的包版本。排队REST端点可以负责队列和队列项管理,诸如将数据添加到队列、从队列中获得事务、设置事务的状态等。
监测REST端点可以监测web应用232和代理214。通知和监测API 236可以是被用于注册代理214、向代理214传送配置设置以及用于从服务器和代理214发送/接收通知的REST端点。在一些实施例中,通知和监测API 236也可以使用WebSocket通信。
在本实施例中,持久层包括一对服务器——数据库服务器240(例如,SQL服务器)和索引器服务器250。在本实施例中,数据库服务器240存储机器人、机器人组、关联的过程、用户、角色、调度等。在一些实施例中,该信息通过web应用232被管理。数据库服务器240可以管理队列和队列项。在一些实施例中,数据库服务器240可以存储由机器人日志记录的消息(除了索引器服务器250之外或代替索引器服务器250)。
索引器服务器250(在一些实施例中是可选的)存储和索引由机器人日志记录的信息。在某些实施例中,索引器服务器250可以通过配置设置被禁用。在一些实施例中,索引器服务器250使用它是一个开源项目全文搜索引擎。由机器人日志记录的消息(例如,使用像日志消息或写行这样的活动)可以通过(多个)日志记录REST端点被发送到索引器服务器250,在那里它们被索引以供将来利用。
图3是示出根据本发明的实施例的设计器310、活动320、330和驱动器340之间的关系300的架构图。根据以上内容,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉组件,这在本文中被称为计算机视觉(CV)。与这样的组件有关的一些CV活动可能包括但不限于点击、键入、得到文本、悬停、元素存在、刷新范围、突出显示等。在某些实施例中,点击使用CV、光学字符识别(OCR)、模糊文本匹配、多锚来标识元素,并点击它。类型可以使用上面的元素和元素中的类型来标识元素。得到文本可以标识特定文本的位置并使用OCR对其进行扫描。悬停可以标识一个元素并悬停在它上面。元素存在可以使用上述技术检查屏幕上是否存在元素。在一些实施例中,可能有数百甚至数千个活动可以在设计器310中被实现。然而,在不脱离本发明的范围的情况下,任何数目和/或类型的活动可能都是可用的。
UI自动化活动330是特殊的、较低水平的活动的子集,这些活动以较低水平的代码(例如,CV活动)编写并且促使通过UI层与应用的交互。例如,在某些实施例中,UI自动化活动300可以通过窗口消息等模拟“用户输入”。UI自动化活动330经由允许机器人与所需软件交互的驱动器340促使这些交互。例如,驱动器340可以包括OS驱动器342、浏览器驱动器344、VM驱动器346、企业应用程序驱动器348等。
图4是示出根据本发明的实施例的RPA系统400的架构图。在一些实施例中,RPA系统400可以是或包括图1和/或图2的RPA系统100和/或RPA系统200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440通信。
关于图1和图3,应当注意,虽然在这些实施例中使用了web应用,但是在不脱离本发明的范围的情况下任何合适的客户端和/或服务器软件可以被使用。例如,指挥器可以运行服务器侧应用,该服务器侧应用与客户端计算系统上的非基于web的客户端软件应用通信。
图5是示出根据本发明的实施例的被配置为提供用于RPA的UI映射器的计算系统500的架构图。在一些实施例中,计算系统500可以是本文描绘和/或描述的一个或多个计算系统。计算系统500包括总线505或用于传送信息的其他通信机制,以及耦合到总线505用于处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU),它们的多个实例和/或其任何组合。(镀铬哦)处理器510也可以具有多个处理核,并且至少一些核可以被配置为执行特定功能。在一些实施例中多并行处理可以被使用。在某些实施例中,(多个)处理器510中的至少一个可以是神经形态电路,其包括模拟生物神经元的处理元件。在一些实施例中,神经形态电路可能不需要冯诺依曼计算架构的典型组件。
计算系统500还包括存储器515,用于存储要由(多个)处理器510执行的信息和指令。存储器515可以由随机存取存储器(RAM)、只读存储器(ROM)、闪存、高速缓存、静态存储(诸如磁盘或光盘)或任何其他类型的非暂态计算机可读介质的任何组合组成或其组合。非暂态计算机可读介质可以是由(多个)处理器510可以接入的任何可用介质并且可以包括易失性介质、非易失性介质或两者。介质也可以是可移动的、不可移动的或两者都是。
另外,计算系统500包括通信设备520,诸如收发器,以经由无线和/或有线连接提供对通信网络的接入。在一些实施例中,在不偏离本发明的范围的情况下,通信设备520可以被配置为使用频分多址(FDMA)、单载波FDMA(SC-FDMA)、时分多址(TDMA)、码分多址(CDMA)、正交频分复用(OFDM)、正交频分多址(OFDMA)、全球移动系统(GSM)通信、通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、cdma2000、宽带CDMA(W-CDMA)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、高速分组接入(HSPA)、长期演进(LTE)、LTE高级(LTE-A)、802.11x、Wi-Fi、Zigbee、超宽带(UWB)、802.16x、802.15、家庭节点-B(HnB)、蓝牙、射频标识(RFID)、红外数据协会(IrDA)、近场通信(NFC)、第五代(5G)、新无线电(NR)、其任何组合和/或任何其他当前存在或未来实现的通信标准和/或协议。在一些实施例中,通信设备520可以包括一个或多个天线,其是单一的、阵列的、相控的、切换的、波束形成的、波束控制的、它们的组合,和/或在不脱离本发明的范围的情况下的任何其他天线配置。
(多个)处理器510还经由总线505耦合到显示器525,诸如等离子显示器、液晶显示器(LCD)、发光二极管(LED)显示器、场发射显示器(FED)、有机发光二极管(OLED)显示器、柔性OLED显示器、柔性基板显示器、投影显示器、4K显示器、高清显示器、显示器、平面内切换(IPS)显示器或任何其他适合向用户显示信息的显示器。显示器525可以被配置为使用电阻式、电容式、表面声波(SAW)电容式、红外线、光学成像、色散信号技术、声脉冲识别、受抑全内反射等的触摸(触觉)显示器、三维(3D)触摸显示器、多输入触摸显示器、多点触摸显示器等。在不脱离本发明范围的情况下,任何合适的显示设备和触觉I/O可以被使用。
键盘530和光标控制设备535(诸如计算机鼠标、触摸板等)还耦合到总线505以使用户能够与计算系统500交互。然而,在某些实施例中,物理键盘和鼠标可能不存在,并且用户可以仅通过显示器525和/或触摸板(未示出)与设备交互。作为设计选择,可以使用任何类型和组合的输入设备。在某些实施例中,不存在物理输入设备和/或显示器。例如,用户可以经由与其通信的另一个计算系统远程地与计算系统500交互,或者计算系统500可以自主操作。
存储器515存储在由(多个)处理器510执行时提供功能的软件模块。模块包括用于计算系统500的操作系统540。模块还包括UI映射模块545,其被配置为执行本文描述的全部或部分过程或其衍生物。计算系统500可以包括一个或多个附加功能模块550,其包括附加功能。
在不脱离本发明的范围的情况下,本领域的技术人员将理解,“系统”可以实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备,或设备的组合。将上述功能呈现为由“系统”执行并非旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例中的一个示例。实际上,本文公开的方法、系统和装置可以以与包括云计算系统的计算技术一致的本地化和分布式形式来实现。计算系统可以是可由局域网(LAN)、移动通信网络、卫星通信网络、互联网、公共或私有云、混合云、服务器场、它们的任何组合等的一部分或以其他方式接入。在不脱离本发明的范围的情况下,可以使用任何本地化或分布式架构。
应当注意,本说明书中描述的一些系统特征已经作为模块呈现,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,包括定制的超大规模集成(VLSI)电路或门阵列、现成的半导体(诸如逻辑芯片)、晶体管或其他分立组件。模块还可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模块也可以至少部分地以软件实现以供各种类型的处理器执行。标识的可执行代码单元可以例如包括一个或多个计算机指令的物理或逻辑块,其可以例如被组织为对象、过程或函数。然而,已标识模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,这些指令当在逻辑上连接在一起时构成该模块并实现针对该模块的规定目的。此外,模块可以存储在计算机可读介质上,在不脱离本发明的范围的情况下,该计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或任何其他用于存储数据的非暂态计算机可读介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序中以及在几个存储器设备上。类似地,操作数据可以在本文中在模块内被标识和说明,并且可以以任何合适的形式实施并在任何合适类型的数据结构内组织。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备在内的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
在一些实施例中,UI映射器以实时模式(本文也称为“记录器模式”)或离线模式(本文也称为“导航模式”)操作。实时模式和离线模式可能相互排斥,因为离线模式允许用户在应用的录制屏幕之间导航,而实时模式允许用户指示给定屏幕的UI元素。在一些实施例中,当处于离线模式时,实时应用屏幕及其覆盖可以被停止和/或隐藏。下面关于图6A至D更详细地描述该功能。
图6A示出了根据本发明的实施例的处于折叠模式的UI映射器600。在一些实施例中,UI映射器600可以从RPA设计器应用的UI对象浏览器被启动。UI映射器600包括具有由应用612、屏幕614和UI元素616组织的UI树结构的项目UI描述符窗格610。在一些实施例中,新的应用和屏幕或两者可以通过点击添加按钮而从工具栏按钮添加。例如,如果用户点击添加按钮602或与给定树项目相关联的仅悬停添加按钮(+)(例如,添加按钮615),则相关联的应用或屏幕可以被添加。
在该实施例中,单个应用612、屏幕614和UI元素被显示。然而,在不脱离本发明的范围的情况下,任何数目的应用、屏幕和UI元素可以基于应用的性质使用和组织。在指定其他UI元素范围的情况下(诸如UI元素窗格),此容器可能出现为应用或屏幕的子项。当一个屏幕用于由多个屏幕使用的UI元素时,这个通用屏幕也可能出现在树中它自己的水平或与其他屏幕相同的水平。
如果新的应用被选择,则新的应用和屏幕可以在适当位置中的UI树中被创建,并且UI元素性质可以在性质窗格中被显示(参见例如图6B的性质窗格620)。例如,“名称”字段(例如,图6B的名称字段622)可以基于选择器信息中的组件的名称被预填充,并且可以由用户编辑。在用户可以在应用屏幕中指示UI元素的一些实施例中,选择新的应用可以同时开始用于该应用的“实时”模式。例如,参见图6B至图6D。
在指示应用之后,应用路径和参数(如果适用)可以被收集和存储,并且新的屏幕被创建包含运行时数据。例如,这可能包括应用路径和参数(例如,利用该特定文件打开应用的文件名和路径)和选择器。该信息集合可用于创建屏幕。
在一些实施例中,新的独立屏幕也可以在指示应用之后被创建,但不在UI树中创建应用。考虑用户希望拥有不属于特定应用的屏幕和/或具有不属于特定屏幕的UI元素的情况。例如,如果某个按钮出现在多个屏幕或其他应用状态中,则在所有这样的屏幕中具有相同按钮的分开的UI描述符实例可能没有意义。用户可以将这样的按钮指定为一般屏幕内的UI元素,其不是针对特定应用状态。
在图6A和6B的实施例中,有两种编辑模式——实时模式和离线模式。在图6A中,UI映射器600处于离线模式,而在图6B中,UI映射器600处于实时模式。这些模式允许用户添加新元素和修改现有元素。实时模式(本文中也称为“记录器模式”)可以经由记录器模式按钮604调用,记录器模式按钮604禁用导航按钮606。相反地,点击导航按钮606禁用记录器模式按钮604并且允许用户在离线模式下操作。本实施例中实时模式和离线模式的主要区别在于,在实时模式下,应用本身无法操作,因为交互只是将UI元素添加到存储库,而在导航模式下,交互被发送到应用,因此新的UI元素无法通过在应用中指示而被添加。
转向图6B至D,在记录器模式中,指示功能针对实时应用屏幕640被发起。如图6C和6D中可见,实时应用屏幕640包括由复选框和单选按钮以及文本字段配置的各种选项。最初,没有UI元素在实时应用屏幕640中被指示。参见图6C。用户可以通过点击并提供UI描述符信息来手动捕获UI元素,或者CV可以被用来尝试自动标识UI元素并向用户提供建议。例如,CV可能会建议要捕获的可见元素,诸如按钮、表单字段、下拉菜单等。
转向图6D,用户选择目标UI元素642和两个锚644、646以使用多锚方法唯一地标识目标UI元素642。在目标UI元素642被指示之后,目标UI元素642的性质可以被添加并在性质窗格620中显示给用户,例如,当用户悬停在编辑按钮617上并点击编辑按钮617时。在该实施例中,性质包括UI元素名称622、描述623、顶部平选择器626、目标性质630和锚性质628。在一些实施例中,扩展锚性质628可以显示UI描述符选项的类似集合,用于找到相应的锚到目标性质630。
目标性质630包括复选框632、634、638,用于选择所需的(多个)UI元素检测技术,即,在该实施例中相应地为选择器、模糊选择器和图像匹配。用户可以相应地使用文本区域633、635手动修改针对选择器和模糊选择器技术的属性。用户可以使用滑块或通过手动输入值来修改选择器准确度636。图像精度639也可以使用相应的滑块或通过手动输入值被修改。
使用性质窗格620,用户可以修改针对相应UI元素的各种性质,包括但不限于移除锚、删除目标、编辑选择器、编辑UI元素名称和描述等。在一些实施例中,UI映射器需要处于实时模式,以便用户添加锚。使用项目UI描述符窗格610,用户可以将当前选择的UI元素616移动到树层次结构中的不同定位。当完成配置UI元素时,用户可以点击确认元素按钮624,其恢复记录过程以捕获下一个期望的UI元素和/或屏幕。
在一些实施例中,用户可以点击项目UI描述符窗格610的UI树中的任何期望的UI元素616。如果有效(例如,(多个)UI描述符能够在实时应用屏幕中找到目标UI元素),目标UI元素可以在实时应用屏幕640上突出显示,如图6D所示,并且UI元素的设置可以根据需要进一步编辑。如果目标UI元素无效,在一些实施例中,目标UI元素的性质仍然显示并且可以被编辑,但是新元素(目标/锚)不能被添加直到(多个)错误被更正。如果编辑被执行,验证也可以再次被执行。
用户还可以点击UI树中的屏幕614。在一些实施例中,对于这个动作可能没有视觉响应,但是添加的下一个元素可以被添加到选定的屏幕而不是先前的屏幕。在一些实施例中,UI元素、屏幕和应用可以通过在相应元素上右键点击并挑选删除选项(未显示)被删除。用户可以通过点击工具栏中的导航按钮606使记录停止。
图6A的导航(离线)模式中的离线编辑可以类似于图6B的实时模式,除了实时应用屏幕640中的元素的突出显示和实时验证以及锚的添加可以不被执行之外。性质窗格620也可以在导航模式下实现对图6B中所示的性质的手动编辑。用户可以经由记录器模式按钮604切换回实时模式。
突出显示元素可以使用突出显示按钮608被执行。在一些实施例中这可以针对单个UI元素或所有UI元素被发起。对于单个UI元素,由于突出显示UI元素可能意味着搜索它,因此此操作可能会将模式从导航模式切换到记录模式。感兴趣的UI元素可以在实时应用屏幕640中被自动突出显示。
如果用户突出显示屏幕,则屏幕中的所有UI元素可以被搜索并且目标可以被突出显示。对于屏幕,突出显示按钮608可以表现得像一个切换按钮,它一直保持打开直到用户再次按下它。在此状态下,如果需要,用户可以切换到记录模式并添加/编辑其他UI元素。在搜索元素期间,一个可取消的“烤面包机”可能被显示,并且每个UI元素可能会在找到时被显示,而不是等待直到过程的结束。
图7是示出根据本发明的实施例的用于UI映射器的过程700的流程图。该过程开始于在705处提供促使应用的屏幕中的UI元素的指示的接口。当用户在710处选择新应用时,新应用和屏幕在UI树中被创建,并且用于应用的应用路径和参数在715处被收集并存储。
CV在屏幕上被运行以自动标识UI元素,并且在720处一个或多个UI元素建议使用自动标识的UI元素被提供。在725处屏幕中的UI元素的一个或多个指示被接收并且在730处一个或多个指示的UI元素被包括在应用的UI树中。
在一些实施例中,UI映射器被配置为在记录器模式下操作,记录器模式提供接口并接收屏幕上的UI元素的指示。在某些实施例中,UI映射器被配置为在导航模式下操作,在导航模式下UI映射器促使不同屏幕的选择。在一些实施例中,UI映射器被配置为在两种模式下操作。在某些实施例中,记录器模式和导航模式是相互排斥的。
在一些实施例中,UI映射器是从RPA设计器应用的UI对象浏览器被启动的。在某些实施例中,UI映射器包括由一个或多个应用组织的UI描述符面板、每应用的一个或多个相应的屏幕、以及被包括在UI树中的每屏幕的一个或多个相应的UI元素。在一些实施例中,当UI元素被选择时,性质窗格包括目标用户界面UI元素的性质和用于标识目标UI元素的一个或多个UI描述符。在某些实施例中,性质窗格还包括与目标UI元素相关联的至少一个锚。在一些实施例中,UI映射器经由性质窗格被配置为促使移除锚、删除目标UI元素、编辑一个或多个UI描述符、编辑目标UI元素的名称和描述或其组合。
例如,如果用户想要在屏幕上搜索选定的UI元素或想要查看所有UI元素,一些实施例在735处实现突出显示模式功能。突出显示模式功能可能涉及在UI映射器中接收UI元素的选择,并对于前者在屏幕中搜索选定的UI元素和/或对于后者接收屏幕的选择并显示在屏幕上找到的每个UI元素。在一些实施例中,在740处至少一个新的独立屏幕被创建,该新的独立屏幕包括在应用的多个屏幕中公共的一个或多个UI元素。
在一些实施例中,在745处用于屏幕的一个或多个容器被提供。一个或多个容器包括屏幕的子集。在750处包括选定的应用、屏幕或UI元素的性质的性质窗格被显示。例如,参见图6B。在755处,一个或多个指示的UI元素被添加到对象存储库以供随后重用。
如果在755处用户想要移动到应用的另一个屏幕,用户可以将UI映射器置于导航模式,选择下一个屏幕,返回到记录器模式,并针对该屏幕返回到步骤720。在一些实施例中,用户可以选择不同的应用并且针对该应用进行到步骤705。如果没有更多的屏幕或应用要被查看,则该过程结束。
根据本发明的实施例,图7中执行的处理步骤可以由计算机程序执行,编码用于(多个)处理器的指令以执行图7中描述的(多个)处理的至少一部分。计算机程序可以被实施在非暂态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他这样的介质或介质的组合。计算机程序可以包括编码指令,该编码指令用于控制计算系统的(多个)处理器(例如,图5的计算系统500的(多个)处理器510)以实现图7中描述的过程步骤的全部或部分,其也可以存储在计算机可读介质上。
计算机程序可以以硬件、软件或混合实现来实现。计算机程序可以由彼此可操作通信的模块组成,并且其被设计用于传递信息或指令以显示。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易理解的是,如本文附图中大体描述和图示的本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所示的本发明的实施例的详细描述并非旨在限制所要求保护的本发明的范围,而仅代表本发明的选定实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以以任何合适的方式组合在一个或多个实施例中。例如,贯穿本说明书对“某些实施例”、“一些实施例”或类似语言的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现不一定都指代相同组的实施例和所描述的特征、结构或特性在一个或多个实施例中可以以任何合适的方式组合。
应该注意的是,贯穿本说明书对特征、优点或类似语言的引用并不意味着可以利用本发明实现的所有特征和优点应该是或存在于本发明的任何单个实施例中。相反,提及特征和优点的语言应理解为是指结合实施例描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的特征和优点的讨论以及类似的语言可能但不一定指代相同的实施例。
此外,本发明的所描述的特征、优点和特征可以以任何合适的方式组合在一个或多个实施例中。相关领域的技术人员将认识到,可以在没有特定实施例的一个或多个特定特征或优点的情况下实践本发明。在其他情况下,附加特征和优点可以在某些实施例中被认识到可能不存在于本发明的所有实施例中。
本领域的普通技术人员将容易理解,如上所述的本发明可以以不同顺序的步骤和/或以与所公开的那些不同的配置的硬件元件来实践。因此,尽管已经基于这些优选实施例描述了本发明,但是对于本领域的技术人员来说显而易见的是,某些修改、变化和备选构造将是显而易见的,同时保持在本发明的精神和范围内。因此,为了确定本发明的界限和范围,应当参考所附权利要求。
Claims (20)
1.一种用于提供用户接口(UI)映射器的计算机程序,所述用户接口映射器被配置为映射被实施在非暂态计算机可读介质上的UI元素,所述计算机程序被配置为使至少一个处理器:
提供促使在应用的屏幕中的UI元素的指示的接口;
接收所述屏幕中的所述UI元素的一个或多个指示;以及
将一个或多个指示的所述UI元素包括在所述应用的UI树中,其中
所述UI映射器被配置为在实时模式下操作,所述实时模式提供所述接口并且接收所述屏幕上的所述UI元素的所述指示,并且
所述UI映射器被配置为在离线模式下操作,其中所述UI映射器促使不同屏幕的选择。
2.根据权利要求1所述的计算机程序,其中所述实时模式和所述离线模式是互斥的。
3.根据权利要求1所述的计算机程序,其中所述UI映射器是从RPA设计器应用的UI对象浏览器被启动的。
4.根据权利要求1所述的计算机程序,其中所述UI映射器包括由一个或多个应用组织的UI描述符窗格、每个应用的一个或多个相应屏幕、以及被包括在所述UI树中的每个屏幕的一个或多个相应UI元素。
5.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
当用户选择新应用时,在所述UI树中创建所述新应用和屏幕。
6.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
收集并存储用于所述应用的应用路径和变量。
7.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
创建至少一个新的独立屏幕,所述至少一个新的独立屏幕包括在所述应用的不同屏幕中是公共的一个或多个UI元素。
8.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
对所述屏幕运行计算机视觉(CV)以自动标识UI元素;以及
使用自动标识的所述UI元素提供一个或多个UI元素建议。
9.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
显示性质窗格,所述性质窗格包括选定的应用、屏幕或UI元素的性质。
10.根据权利要求9的计算机程序,其中当UI元素被选择时,所述性质窗格包括目标UI元素的性质和用于标识所述目标UI元素的一个或多个UI描述符。
11.根据权利要求10所述的计算机程序,其中所述性质窗格还包括与所述目标UI元素相关联的至少一个锚点。
12.根据权利要求10所述的计算机程序,其中所述UI映射器经由所述性质窗格被配置为促使移除锚点、删除所述目标UI元素、编辑所述一个或多个UI描述符、编辑所述目标UI元素的名称和描述,或它们的组合。
13.根据权利要求1所述的计算机程序,其中所述UI映射器包括突出显示功能,并且当所述突出显示功能被使能时,所述计算机程序还被配置为使所述至少一个处理器:
在所述UI映射器中接收UI元素的选择并在所述屏幕中搜索选定的所述UI元素,接收屏幕的选择并显示在所述屏幕上找到的每个UI元素,或两者。
14.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
为所述屏幕提供一个或多个容器,所述一个或多个容器包括所述屏幕的子集。
15.根据权利要求1所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
将一个或多个指示的所述UI元素添加到对象存储库以供随后重用。
16.一种用于为机器人过程自动化(RPA)映射用户接口(UI)元素的计算机实现的方法,包括:
由UI映射器提供促使在应用的屏幕中的UI元素的指示的接口;
由所述UI映射器接收所述屏幕中的所述UI元素的一个或多个指示;
由所述UI映射器将一个或多个指示的所述UI元素包括在所述应用的UI树中;以及
由所述UI映射器或UI对象浏览器将一个或多个指示的所述UI元素添加到对象存储库以供随后重用,其中
所述UI映射器包括由一个或多个应用组织的UI描述符窗格、每个应用的一个或多个相应屏幕以及被包括在所述UI树中的每个屏幕的一个或多个相应UI元素。
17.根据权利要求16所述的计算机实现的方法,其中
所述UI映射器被配置为在实时模式下操作,所述实时模式提供所述接口并接收所述屏幕上的所述UI元素的所述指示,并且
所述UI映射器被配置为在离线模式下操作,其中所述UI映射器促使不同屏幕的选择。
18.根据权利要求16所述的计算机实现的方法,其中所述UI映射器包括突出显示功能,并且当所述突出显示功能被使能时,所述方法还包括:
在所述UI映射器中接收UI元素的选择并在所述屏幕中搜索选定的所述UI元素,接收屏幕的选择并显示在所述屏幕上找到的每个UI元素,或两者。
19.一种用于提供用户接口(UI)映射器的计算机程序,所述用户接口映射器被配置为映射被实施在非暂态计算机可读介质上的UI元素,所述计算机程序被配置为使至少一个处理器:
提供促使在应用的屏幕中的UI元素的指示的接口;
接收所述屏幕中的所述UI元素的一个或多个指示;
将一个或多个指示的所述UI元素包括在所述应用的UI树中;以及
显示包括选定的应用、屏幕或UI元素的性质的性质窗格,其中
当UI元素被选择时,所述性质窗格包括目标UI元素的性质和用于标识所述目标UI元素的一个或多个UI描述符。
20.根据权利要求19所述的计算机程序,其中所述UI映射器经由所述性质窗格被配置为促使移除锚点、删除所述目标UI元素、编辑所述一个或多个UI描述符、编辑所述目标UI元素的名称和描述,或它们的组合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/019,679 US11385777B2 (en) | 2020-09-14 | 2020-09-14 | User interface (UI) mapper for robotic process automation |
US17/019,679 | 2020-09-14 | ||
PCT/US2021/040662 WO2022055605A1 (en) | 2020-09-14 | 2021-07-07 | User interface (ui) mapper for robotic process automation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116324697A true CN116324697A (zh) | 2023-06-23 |
Family
ID=80625768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180062739.3A Pending CN116324697A (zh) | 2020-09-14 | 2021-07-07 | 用于机器人过程自动化的用户接口(ui)映射器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11385777B2 (zh) |
EP (1) | EP4211550A1 (zh) |
JP (1) | JP2023541548A (zh) |
CN (1) | CN116324697A (zh) |
WO (1) | WO2022055605A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11543930B2 (en) | 2020-11-10 | 2023-01-03 | RealFar Ltd | Augmenting web applications with optimized workflows supporting user interaction |
US20220405064A1 (en) * | 2021-06-17 | 2022-12-22 | International Business Machines Corporation | Robotic process automation |
CN116185411B (zh) * | 2023-03-23 | 2024-04-30 | 苏州峰之鼎信息科技有限公司 | Rpa界面的确定方法、装置、计算机设备及存储介质 |
CN117573006B (zh) * | 2024-01-17 | 2024-05-10 | 杭州实在智能科技有限公司 | 用于rpa屏幕界面元素批量拾取的方法及系统 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6823497B2 (en) * | 1999-11-30 | 2004-11-23 | Synplicity, Inc. | Method and user interface for debugging an electronic system |
CA2322594C (en) * | 2000-10-06 | 2005-01-11 | Ibm Canada Limited-Ibm Canada Limitee | System and method for managing web page components |
US8068103B2 (en) | 2004-06-24 | 2011-11-29 | Apple Inc. | User-interface design |
US20070028162A1 (en) * | 2005-07-30 | 2007-02-01 | Microsoft Corporation | Reusing content fragments in web sites |
US8392886B2 (en) * | 2006-10-17 | 2013-03-05 | Artoftest, Inc. | System, program product, and methods to enable visual recording and editing of test automation scenarios for web application |
US20090273597A1 (en) | 2008-05-05 | 2009-11-05 | International Business Machines Corporation | User interface screen layout analysis using hierarchical geometric features |
US9141518B2 (en) * | 2008-12-10 | 2015-09-22 | Microsoft Technology Licensing, Llc | GUI testing |
US9104809B2 (en) * | 2010-03-24 | 2015-08-11 | Fujitsu Limited | Facilitating automated validation of a web application |
US20120096340A1 (en) | 2010-10-13 | 2012-04-19 | Sony Pictures Technologies Inc. | Reformatting web pages in bd platform |
US9811233B2 (en) * | 2013-02-12 | 2017-11-07 | Ab Initio Technology Llc | Building applications for configuring processes |
US9424167B2 (en) * | 2014-05-21 | 2016-08-23 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
US10156958B2 (en) | 2015-03-03 | 2018-12-18 | Soroco Private Limited | Software robots for programmatically controlling computer programs to perform tasks |
EP3112965A1 (en) * | 2015-07-02 | 2017-01-04 | Accenture Global Services Limited | Robotic process automation |
US10386985B2 (en) | 2015-07-14 | 2019-08-20 | International Business Machines Corporation | User interface pattern mapping |
WO2017078705A1 (en) | 2015-11-04 | 2017-05-11 | Observepoint, Inc. | Automatic execution of objects in a user interface |
US9600401B1 (en) * | 2016-01-29 | 2017-03-21 | International Business Machines Corporation | Automated GUI testing |
TWI670639B (zh) | 2017-05-18 | 2019-09-01 | 美商愛特梅爾公司 | 用於識別使用者介面元件之技術以及使用其之系統及裝置 |
US10866697B2 (en) | 2017-10-24 | 2020-12-15 | Microchip Technology Incorporated | Touch-sensitive user-interface including configurable virtual widgets |
US10705948B2 (en) | 2017-10-30 | 2020-07-07 | Bank Of America Corporation | Robotic process automation simulation of environment access for application migration |
KR102132383B1 (ko) | 2018-05-28 | 2020-07-09 | 슈어소프트테크주식회사 | 딥러닝 알고리즘 및 트리를 이용한 ui테스팅 자동화 방법 및 동일 방법으로 구현된 장치 |
EP3608856A1 (en) * | 2018-08-08 | 2020-02-12 | Atos Syntel, Inc. | Systems and methods for merging and aggregation of workflow processes |
US11487973B2 (en) * | 2019-07-19 | 2022-11-01 | UiPath, Inc. | Retraining a computer vision model for robotic process automation |
US11663103B2 (en) * | 2019-09-06 | 2023-05-30 | Pegasystems, Inc. | Automatic control identification |
US11403118B2 (en) * | 2019-12-30 | 2022-08-02 | UiPath Inc. | Enhanced target selection for robotic process automation |
CN111221612B (zh) | 2020-01-03 | 2023-08-29 | 北京小米移动软件有限公司 | 一种定位用户界面元素的方法、装置及介质 |
US10654166B1 (en) | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
US20220092607A1 (en) * | 2020-09-24 | 2022-03-24 | The Toronto-Dominion Bank | Management of programmatic and compliance workflows using robotic process automation |
-
2020
- 2020-09-14 US US17/019,679 patent/US11385777B2/en active Active
-
2021
- 2021-07-07 WO PCT/US2021/040662 patent/WO2022055605A1/en active Application Filing
- 2021-07-07 EP EP21867306.9A patent/EP4211550A1/en active Pending
- 2021-07-07 CN CN202180062739.3A patent/CN116324697A/zh active Pending
- 2021-07-07 JP JP2023513196A patent/JP2023541548A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023541548A (ja) | 2023-10-03 |
US20220083181A1 (en) | 2022-03-17 |
EP4211550A1 (en) | 2023-07-19 |
WO2022055605A1 (en) | 2022-03-17 |
US11385777B2 (en) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307876B1 (en) | Automated remedial action to expose a missing target and/or anchor(s) for user interface automation | |
US11748069B2 (en) | User interface (UI) descriptors, UI object libraries, UI object repositories, and UI object browsers for robotic process automation | |
US11650874B2 (en) | Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning | |
US11385777B2 (en) | User interface (UI) mapper for robotic process automation | |
US11301268B2 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
CN113366492B (zh) | 专用图形元素检测 | |
US11232170B1 (en) | Application-specific graphical element detection | |
JP2023542559A (ja) | 組み合わせた直列および遅延並列実行統一ターゲット技術、デフォルトのグラフィカル要素検出技術、またはその両方を用いたグラフィカル要素検出 | |
CN114127696A (zh) | 用于机器人过程自动化的测试自动化 | |
EP3955108B1 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
US20230191601A1 (en) | Multi-target libraries, projects, and activities for robotic process automation | |
US11281362B1 (en) | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both |
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 |