CN114341788A - 使用根据两种或更多种图形元素检测技术的用户接口描述符属性的组合的图形元素检测 - Google Patents
使用根据两种或更多种图形元素检测技术的用户接口描述符属性的组合的图形元素检测 Download PDFInfo
- Publication number
- CN114341788A CN114341788A CN202080002307.9A CN202080002307A CN114341788A CN 114341788 A CN114341788 A CN 114341788A CN 202080002307 A CN202080002307 A CN 202080002307A CN 114341788 A CN114341788 A CN 114341788A
- Authority
- CN
- China
- Prior art keywords
- attributes
- descriptor
- activity
- computer
- element detection
- 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
-
- 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/38—Creation or generation of source code for implementing user interfaces
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- 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
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- 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
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/235—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising information on displays, dials, clocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Human Computer Interaction (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Quality & Reliability (AREA)
- Economics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Burglar Alarm Systems (AREA)
- Stored Programmes (AREA)
Abstract
公开了使用根据两种或更多种图形元素检测技术的用户接口(UI)描述符属性的组合的图形元素检测。UI描述符可以用于将针对给定UI描述符的属性与在运行时在UI中找到的UI元素的属性进行比较。在运行时,针对在UI中找到的UI元素的属性可以被搜索,以获得与相应RPA工作流活动的属性的匹配,并且如果找到了精确匹配或匹配阈值内的匹配,那么UI可以被标识并且相应地进行交互。
Description
相关申请的交叉引用
本申请要求于2020年8月11日提交的美国非临时专利申请第16/990,709号的权益。该早期提交的申请的主题以其整体内容通过引用并入于此。
技术领域
本发明大体上涉及图形元素检测,并且更具体地涉及使用根据两种或更多种图形元素检测技术的用户接口(UI)描述符属性的组合的图形元素检测。
背景技术
针对UI中的机器人流程自动化(RPA),可以针对每个UI动作使用选择器、计算机视觉(CV)或光学字符识别(OCR)来执行图形元素检测。然而,这些技术为单独应用的,并且并非针对所有场景都是最佳的。因此,一种改进的方法可以是有益的。
发明内容
本发明的某些实施例可以提供对本领域中尚未经当前图形元素检测技术完全标识、了解或解决的问题和需求的解决方案。例如,本发明的一些实施例涉及使用根据两种或更多种图形元素检测技术(例如选择器、CV、OCR等)的UI描述符属性的组合的图形元素检测。
在实施例中,一种用于检测UI中的图形元素的计算机实现的方法包括:由设计器应用接收对要在RPA工作流中被配置的活动的选择。该计算机实现的方法还包括:由设计器应用接收对以下各项的选择和/或修改:多种图形元素检测技术中的一种或多种图形元素检测技术、图形元素检测技术的一个或多个UI描述符属性、或者上述的组合。该计算机实现的方法还包括:由设计器应用基于所接收到的选择和/或修改来配置活动。
在另一实施例中,一种计算机程序被实施在非瞬态计算机可读介质上。该程序被配置为使至少一个处理器接收对要在RPA工作流中被配置的活动的选择。该计算机程序还被配置为使至少一个处理器接收对以下各项的选择和/或修改:多种图形元素检测技术中的一种或多种图形元素检测技术、图形元素检测技术的一个或多个UI描述符属性、或者上述的组合。该计算机程序还被配置为使至少一个处理器基于所接收到的选择和/或修改来配置活动。
在又一实施例中,一种计算机程序被实施在非瞬态计算机可读介质上。该程序被配置为使至少一个处理器在运行时分析UI,以标识UI元素属性。该计算机程序还被配置为使至少一个处理器针对RPA工作流的活动将UI元素属性与根据多种图形元素检测技术的UI描述符属性进行比较。当与多种图形元素检测技术的属性相匹配的UI元素经由精确匹配或阈值匹配而被找到时,该计算机程序被配置为使至少一个处理器采取与涉及UI元素的活动相关联的动作。
附图说明
为了容易地理解本发明的某些实施例的优点,将通过参考在附图中图示的特定实施例来呈现上文简要描述的本发明的更具体的描述。虽然应理解,这些图仅描绘了本发明的典型实施例,并且因此不应该被认为是对本发明的范围的限制,但是本发明将通过附图的使用以附加的特异性和细节来描述和阐释,在附图中:
图1是图示了根据本发明的实施例的机器人流程自动化(RPA)系统的架构图。
图2是图示了根据本发明的实施例的部署的RPA系统的架构图。
图3是图示了根据本发明的实施例的设计器、活动与驱动(driver)之间的关系的架构图。
图4是图示了根据本发明的实施例的RPA系统的架构图。
图5是图示了根据本发明的实施例的被配置为执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的计算系统的架构图。
图6图示了根据本发明的实施例的用于RPA设计器应用的示例图形元素检测技术配置接口。
图7A和图7B图示了根据本发明的实施例的用于RPA设计器应用的另一示例图形元素检测技术配置接口。
图8是图示了根据本发明的实施例的用于将RPA工作流配置为执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的过程的流程图。
图9是图示了根据本发明的实施例的用于执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的过程的流程图。
除非另有指示,否则类似的附图标记在整个附图中始终指示对应特征。
具体实施方式
一些实施例涉及使用根据两种或更多种图形元素检测技术(例如选择器、CV、OCR等)的UI描述符属性的组合的图形元素检测。“图形元素”和“UI元素”在本文中可互换地使用。UI描述符在其核心处标识UI元素(例如文本字段、按钮、标签、菜单、复选框等)。一些类型的UI描述符包括但不限于选择器、CV描述符、图像匹配描述符、OCR描述符、可以串行或并行地利用多种不同类型的UI描述符的统一目标描述符等。UI描述符可以用于将针对给定UI描述符的属性与在运行时在UI中找到的UI元素的属性进行比较。
在一些实施例中,UI描述符例如在可扩展标记语言(XML)片段中存储相应UI元素及其父元素的属性。在运行时,针对在UI中找到的UI元素的属性可以被搜索,以获得与针对相应RPA工作流活动的属性的匹配,并且如果精确匹配或“足够接近的”匹配在匹配阈值内被找到,那么UI元素可以被标识并且相应地进行交互。属性可以包括基于文本的标识符(ID)、类、角色等。针对CV,属性可以包括目标元素的类型和与可以在多锚匹配方法中使用的一个或多个锚元素的关系。针对OCR,属性可以包括例如呈所存储的串形式的文本和经由OCR找到的文本,在执行期间,所存储的串与OCR模糊匹配。可以在不脱离本发明的范围的情况下使用任何合适的属性和图形元素检测技术。
一些实施例从两种或更多种不同的图形元素检测技术中搜索自动定义属性或自定义属性的混合。例如,一些选择器属性、一些CV描述符属性以及一些OCR描述符属性可以用于在运行时以可以比单独使用任何图形元素检测技术更加准确的方式共同地、且潜在地同时标识图形元素。例如,如果在屏幕上存在具有不同视觉外观的复选框各个组,那么使用用于标识复选框图像的图像匹配描述符与CV描述符的组合可以是有意义的,该CV描述符提供与特定复选框相对于附近的锚UI元素的位置相关的多锚匹配信息。与仅单种图形元素检测技术相比,这可以提高准确性。
在一些实施例中,组合的图形元素检测技术可以在设计时使用RPA设计器应用(例如UiPath StudioTM)来配置。例如,开箱即用的点击活动可以被配置为查看要被标识的目标图形元素的类型和/或要被标识的目标图形元素的某些特性,以自动确定要使用图形元素检测技术与相应属性的哪种组合。在某些实施例中,RPA开发者可以修改活动的默认逻辑,和/或提供要被手动地使用的图形元素检测技术及其属性。例如,RPA开发者可以选择要应用的图形元素检测技术的类型。在一些实施例中,RPA开发者可以从供给定技术选择的属性列表中进行选择、开发者可以手动地录入属性等。
根据这些技术使用的属性的组合可以是针对每种技术的属性的子集和/或全部。例如,在一些实施例中,可以使用针对所有的所选择的技术的全部属性。然而,在某些实施例中,可以使用根据选择器的一个属性、可以使用根据CV描述符的两个属性、可以使用根据OCR描述符的全部属性等。
如本文中所使用的,“屏幕”是应用UI或应用UI的一部分在某一时间点的图像。在一些实施例中,UI元素和屏幕可以进一步被区分为特定类型的UI元素(例如按钮、复选框、文本字段等)和屏幕(例如,顶部窗口、模式窗口、弹出窗口等)。
一些实施例使用UI描述符,该UI描述符在XML片段中存储UI元素及其父元素的属性。在现代计算系统中,操作系统通常将每个用户接口表示为通常被称为UI树的分层数据结构。示例UI树可以包括以web浏览器应用所呈现的网页为基础的文档对象模型(DOM)。
在一些实施例中,选择器是可以用于检测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描述符是用于寻找UI元素的指令集。在一些实施例中,UI描述符是封装的数据/结构格式,该封装的数据结构/格式包括(多个)UI元素选择器、(多个)锚选择器、(多个)CV描述符、(多个)OCR描述符,组合了两种或更多种类型的UI描述符的(多个)统一目标描述符、屏幕图像捕获(上下文)、元素图像捕获、其他元数据(例如应用和应用版本)、其组合等。封装的数据/结构格式可以随着平台的未来更新而扩展,并且不限于以上定义。可以在不脱离本发明的范围的情况下使用用于标识屏幕上的UI元素的任何合适的UI描述符。可以从RPA工作流中的活动中提取UI描述符,并且将UI描述符添加至结构化方案,该结构化方案按UI应用、屏幕和UI元素对UI描述符进行分组。
在一些实施例中,UI描述符可以与包含多个或所有UI检测机制(图像检测和定义通过该机制被执行)的统一目标一起工作。统一目标可以将标识UI元素并使UI元素自动化的多种技术合并成单种内聚方法。统一目标描述符将多种类型的UI描述符串行地链接在一起,并行地使用这些UI描述符,或在一段时间内首先使用至少一种技术(例如选择器),然后在第一技术在该时间段内没有找到匹配的情况下并行地运行至少一种其他技术。在一些实施例中,统一目标描述符可以像有限状态机(FSM)一样发挥作用,其中在第一上下文中,应用第一UI描述符机制;在第二上下文中,应用第二UI描述符等。在一些实施例中,在前两种机制都不成功的情况下,统一目标可以对基于选择器的和基于驱动的UI检测机制进行优先级排序,并且借助于CV、图像匹配和/或其他机制来寻找图形元素。
在一些实施例中,可以采用模糊匹配,在模糊匹配中,一个或多个属性应当以某一准确性匹配(例如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工作流。在某些实施例中,例如,这可以通过点击和拖放各种特征来完成。
某些实施例可以被部署用于机器人流程自动化(RPA)。图1是图示了根据本发明的实施例的RPA系统100的架构图。RPA系统100包括允许开发者设计和实现工作流的设计器110。设计器110可以提供用于应用集成以及自动化第三方应用、管理信息技术(IT)任务和业务IT过程的解决方案。设计器110可以支持自动化项目的开发,该自动化项目是业务过程的图形表示。简而言之,设计器110支持工作流和机器人的开发和部署。
自动化项目通过向开发者提供对在工作流中开发的一组定制步骤(在本文中被定义为“活动”)之间的执行顺序和关系的控制来实现基于规则的过程的自动化。设计器110的实施例的一个商业示例是UiPath StudioTM。每个活动可以包括动作,诸如点击按钮、读取文件、写入日志面板等。在一些实施例中,工作流可以被嵌套或嵌入。
一些类型的工作流可以包括但不限于序列、流程图、FSM和/或全局异常处理程序。序列可能特别适合于线性过程,从而能够在不使工作流混乱的情况下从一个活动流向另一活动。流程图可能特别适合于更复杂的业务逻辑,从而实现通过多个分支逻辑运算符以更为不同的方式进行的决策的集成以及活动的连接。FSM可能特别适合于较大工作流。FSM可以在其执行中使用有限数量的状态,这些状态由条件(即,过渡)或活动触发。全局异常处理程序可能特别适合于在遇到执行误差时确定工作流行为且特别适合于调试过程。
一旦工作流在设计器110中被开发,业务过程的执行就由指挥器(conductor)120编排,该指挥器编排执行设计器110中所开发的工作流的一个或多个机器人130。指挥器120的实施例的一个商业示例是UiPath OrchestratorTM。指挥器120支持对环境中的资源的创建、监测以及部署的管理。利用第三方解决方案和应用,指挥器120可以充当集成点、或充当聚合点中的一者。
指挥器120可以管理一队机器人130,从而从集中点连接并执行机器人130。可以管理的机器人130的类型包括但不限于:有人值守的(attended)机器人132、无人值守的机器人134、开发机器人(类似于无人值守的机器人134,但用于开发和测试目的)以及非生产型机器人(类似于有人值守的机器人132,但用于开发和测试目的)。有人值守的机器人132可以由用户事件触发或被安排为自动发生,并且与人类一起在相同计算系统上操作。有人值守的机器人132可以与指挥器120一起用于集中过程部署和记录介质。有人值守的机器人132可以帮助人类用户完成各种任务,并且可以由用户事件触发。在一些实施例中,无法从这种类型的机器人上的指挥器120开启过程和/或这些过程无法在锁定屏幕下运行。在某些实施例中,有人值守的机器人132只可以从机器人托盘或根据命令提示而被开启。在一些实施例中,有人值守的机器人132应该在人类监督下运行。
无人值守的机器人134在虚拟环境中或在物理机上以无人值守的方式运行,并且可以使许多过程自动化。无人值守的机器人134可以负责远程执行、监测、调度并且为工作队列提供支持。在一些实施例中,可以根据设计器110来运行针对所有机器人类型的调试。有人值守的机器人和无人值守的机器人两者都可以使各种系统和应用自动化,该系统和应用包括但不限于大型主机、web应用、VM、企业应用(例如由等生产的那些企业应用)以及计算系统应用(例如台式机和笔记本应用、移动设备应用、可穿戴计算机应用等)。
指挥器120可以具有各种能力,包括但不限于供应(provisioning)、部署(deployment)、版本化(versioning)、配置(configuration)、排队(queueing)、监测(monitoring)、日志记录(logging)和/或提供互连性(interconnectivity)。供应可以包括在机器人130与指挥器120(例如web应用)之间创建和维护连接。开发可以包括确保将包(package)版本正确递送至所指派的机器人130以供执行。在一些实施例中,版本化可以包括某一过程或配置的唯一实例的管理。配置可以包括维护和递送机器人环境和过程配置。排队可以包括提供对队列和队列项的管理。监测可以包括追踪机器人标识数据和维护用户权限。日志记录可以包括将日志存储和编入索引至数据库(例如SQL数据库)和/或另一存储机制(例如其提供用于存储和快速查询较大数据集的能力)。指挥器120可以通过充当第三方解决方案和/或应用的通信的集中点来提供互连性。
机器人130是运行内置于设计器110中的工作流的执行代理。(多个)机器人130的一些实施例的一个商业示例是UiPath RobotsTM。在一些实施例中,机器人130默认安装Microsoft服务控制管理器(SCM)管理的服务。结果,此类机器人130可以在本地系统账户下打开交互式会话,并且具有服务的权限。
在一些实施例中,机器人130可以在用户模式下被安装。针对此类机器人130,这意味着其具有与已经安装了给定机器人130的用户相同的权限。此特征也可以供高密度(HD)机器人使用,该高密度机器人确保了每台机器以其最大潜力的充分利用。在一些实施例中,任何类型的机器人130可以在HD环境中被配置。
在一些实施例中,机器人130被分成分别专用于特定自动化任务的若干组件。在一些实施例中,机器人组件包括但不限于SCM管理的机器人服务、用户模式机器人服务、执行器、代理以及命令行。SCM管理的机器人服务管理和监测会话,并且充当指挥器120与执行主机(即,机器人130在其上被执行的计算系统)之间的委托。这些服务受机器人130信任并且管理机器人130的凭证。控制台应用在本地系统下由SCM启动。
在一些实施例中,用户模式机器人服务管理和监测会话,并且充当指挥器120与执行主机之间的委托。用户模式机器人服务可以受机器人130信任并且管理机器人130的凭证。在未安装SCM管理的机器人服务的情况下,应用可以被自动启动。
执行器可以在会话下运行给定作业(即,执行器可以执行工作流。执行器可以知道每个监测器的每英寸点数(DPI)设置。代理可以是Presentation Foundation(WPF)应用,其在系统托盘窗口中显示可用的作业。代理可以是服务的客户端。代理可以请求开启或停止作业以及改变设置。命令行是服务的客户端。命令行是可以请求开启作业并等待其输出的控制台应用。
如上文所阐释一般使机器人130的组件分开帮助开发者、支持用户以及计算系统更容易地运行、标识和追踪每个组件正在执行的内容。特殊行为可以以这种方式按组件来配置,诸如针对执行器和服务设置不同的防火墙规则。在一些实施例中,执行器可以始终知道每个监测器的DPI设置。结果,不论创建工作流的计算系统的配置如何,工作流都可以在任何DPI处被执行。在一些实施例中,来自设计器110的项目也可以独立于浏览器缩放级别。在一些实施例中,针对DPI不知道的或有意地标记为不知道的应用,DPI可以被禁用。
图2是图示了根据本发明的实施例的部署的RPA系统200的架构图。在一些实施例中,RPA系统200可以是图1的RPA系统100或可以是该RPA系统的一部分。应注意,在不脱离本发明的范围的情况下,客户端侧、服务器侧或两者都可以包括任何期望数量的计算系统。在客户端侧,机器人应用210包括执行器212、代理214和设计器216。然而,在一些实施例中,设计器216可以不在计算系统210上运行。执行器212正在运行过程。如图2中所示,若干业务项目可以同时运行。在该实施例中,代理214(例如服务)是所有执行器212的单个联系点。该实施例中的所有消息被日志记录到指挥器230中,该指挥器经由数据库服务器240、索引器服务器250或两者进一步处理这些消息。如上文相对于图1所讨论的,执行器212可以是机器人组件。
在一些实施例中,机器人表示机器名称与用户名之间的关联。机器人可以同时管理多个执行器。在支持同时运行的多个交互式会话的计算系统(例如服务器2012)上,多个机器人可以同时运行,每个机器人在使用唯一用户名的单独会话中。上文将此称为HD机器人。
代理214还负责发送机器人的状态(例如周期性地发送指示机器人仍在运作的“心跳”消息)并且下载要被执行的包的所需版本。在一些实施例中,代理214与指挥器230之间的通信始终由代理214发起。在通知场景中,代理214可以打开WebSocket信道,稍后由指挥器230使用该WebSocket信道来向机器人发送命令(例如开启、停止等)。
在服务器侧,包括了呈现层(web应用232、开放数据协议(OData)代表性状态转移(REST)应用编程接口(API)端点234以及通知和监测236)、服务层(API实现/业务逻辑238)以及持久层(数据库服务器240和索引器服务器250)。指挥器230包括web应用232、ODataREST API端点234、通知和监测236以及API实现/业务逻辑238。在一些实施例中,用户在指挥器230的接口中(例如经由浏览器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端点可以用于日志记录不同信息,诸如(例如)误差、由机器人发送的显式消息以及其他环境特定信息。如果在指挥器230中使用了开启作业命令,那么可以由机器人使用部署REST端点来查询应该被执行的包版本。排队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,在索引器服务器250中这些消息被编入索引以供将来使用。
图3是图示了根据本发明的实施例的设计器310、活动320、330与驱动340之间的关系300的架构图。根据上文,开发者使用设计器310来开发由机器人执行的工作流。工作流可以包括用户定义的活动320和UI自动化活动330。一些实施例能够标识图像中的非文本视觉分量,在本文中称作计算机视觉(CV)。与此类分量相关的一些CV活动可以包括但不限于点击、键入(type)、取得文本、悬停、元素存在、刷新范围、高亮等。在一些实施例中,点击使用例如CV、光学字符识别(OCR)、模糊文本匹配以及多锚(multi-anchor)来标识元素,并且点击该元素。键入可以使用上述内容来标识元素和该元素中的类型。取得文本可以标识特定文本的位置并且使用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和/或200。RPA系统400包括运行机器人的多个客户端计算系统410。计算系统410能够经由在其上运行的web应用与指挥器计算系统420进行通信。指挥器计算系统420又能够与数据库服务器430和可选的索引器服务器440进行通信。
相对于图1和图3,应注意,虽然在这些实施例中使用了web应用,但可以在不脱离本发明的范围的情况下使用任何合适的客户端和/或服务器软件。例如,指挥器可以运行服务器侧应用,该服务器侧应用与客户端计算系统上的非基于网络的客户端软件应用进行通信。
图5是图示了根据本发明的实施例的被配置为执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的计算系统500的架构图。在一些实施例中,计算系统500可以是本文中所描绘和/或描述的计算系统中的一者或多者。计算系统500包括总线505或用于传送信息的其他通信机制、以及被耦合至总线505以处理信息的(多个)处理器510。(多个)处理器510可以是任何类型的通用或专用处理器,包括中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、其多个实例和/或其任何组合。(多个)处理器510还可以具有多个处理核心,并且至少一些核心可以被配置为执行特定功能。在一些实施例中,可以使用多并行处理。在某些实施例中,(多个)处理器510中的至少一者可以是包括模仿生物神经的处理元件的神经形态电路。在一些实施例中,神经形态电路可以不需要冯·诺依曼计算架构的典型组件。
计算系统500还包括用于存储将由(多个)处理器510执行的信息和指令的存储器515。存储器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。模块还包括被配置为执行本文中所描述的过程或其衍生物的全部或部分的组合技术图形元素检测模块545。计算系统500可以包括一个或多个附加功能模块550,该功能模块包括附加功能性。
本领域的技术人员应了解,在不脱离本发明的范围的情况下,“系统”可以被实施为服务器、嵌入式计算系统、个人计算机、控制台、个人数字助理(PDA)、手机、平板计算设备、量子计算系统或任何其他合适的计算设备或设备的组合。将上文所描述的功能呈现为由“系统”执行并不旨在以任何方式限制本发明的范围,而是旨在提供本发明的许多实施例的一个示例。实际上,本文中所公开的方法、系统和装置可以按照与包括云计算系统的计算技术一致的本地化和分布式形式来实现。
应注意,本说明书中所描述的一些系统特征已经作为模块而被呈现,以便更具体地强调其实现独立性。例如,模块可以被实现为包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立组件)的硬件电路。模块也可以被实现在可编程硬件设备中,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地被实现在软件中以便由各种类型的处理器执行。例如,可执行代码的所标识的单元可以包括计算机指令的一个或多个物理块或逻辑块,这些计算机指令可以例如被组织成对象、过程或功能。虽然如此,但所标识的模块的可执行文件不需要在物理上位于一处,而是可以包括存储在不同位置中的全异的指令,这些指令在以逻辑方式被结合在一起时包括该模块并且实现了该模块的既定目的。此外,模块可以被存储在计算机可读介质上,在不脱离本发明的范围的情况下,该计算机可读介质可以是例如硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类非瞬态计算机可读介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、分布在不同程序之间以及跨多个存储器设备分布。类似地,操作数据在本文中可以被标识和图示为在模块内,并且该操作数据可以被实施为任何合适的形式并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或可以分布于包括在不同存储设备上的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
根据上文,一些实施例采用根据两种或更多种图形元素检测技术的属性来标识UI中的图形元素。在一些实施例中,可以在设计时在RPA设计器应用中针对RPA工作流活动配置这些技术。图6A图示了根据本发明的实施例的用于RPA设计器应用600的示例图形元素检测技术配置接口。RPA设计器应用600包括RPA工作流开发窗格610。当用户点击与UI中的图形元素交互的活动时,图形元素检测技术配置窗格620示出针对该活动的可能的图形元素检测技术和相应属性。
图形元素检测技术配置窗格620为RPA开发者提供了用于从多种图形元素检测技术及其相关联的属性中进行选择的能力。三角形622允许RPA开发者示出或隐藏针对每种图形元素检测技术的属性列表。图形元素检测技术选择复选框624允许RPA开发者一次性选择或取消选择针对给定图形元素检测技术的所有属性。属性复选框626允许RPA开发者选择或取消选择相应属性。
在一些实施例中,可以针对属性采用模糊匹配。通过选择模糊匹配单选按钮628,RPA开发者可以使相应模糊匹配阈值字段629出现。RPA开发者然后可以指定模糊匹配的阈值。在一些实施例中,可以使用其他交互机制,包括但不限于滑块、XML的手动编辑等。例如,可以显示诸如以下的包括属性的标记:
<wnd app='java.exe'cls='SunAwtFrame'title='SwingSet2'
matching:title='fuzzy'fuzzylevel:title='0.8'/>
其中将属性“matching:title”和“fuzzylevel:title”添加至<wnd/>标记。该matching:title属性具有值“fuzzy”,以指示当前标记的“title”属性的值将在运行时进行模糊匹配。该fuzzylevel:title属性的值指示由开发者指定的期望模糊相似性阈值(在该示例中为0.8)。本领域的普通技术人员应了解,在不脱离本发明的范围的情况下,可以存在对指定用于模糊匹配的所选择的属性的模糊标志进行编码的许多其他方式。
在一些实施例中,RPA设计器应用可以为RPA开发者提供用于手动搜索属性的能力。例如,RPA设计器应用600包括属性搜索字段630,当RPA开发者键入文本时,该属性搜索字段630可以执行对属性的搜索。在某些实施例中,匹配属性列表(若存在)可以与键入的每个字符一起出现。
在该示例中,点击活动612已经被配置为点击某个复选框。然而,可以在不脱离本发明的范围的情况下使用和配置试图与一个或多个图形元素进行交互的任何合适的活动。可以以这种方式配置用于每个合适的活动的(多种)图形元素检测技术,以执行期望的RPA动作。在某些实施例中,RPA开发者可以选择仅将单种图形元素检测技术用于一个或多个活动,并且将多种同时的图形元素检测技术用于一个或多个其他活动。这提供了高度灵活的RPA开发工具。
图7A和图7B图示了根据本发明的实施例的用于RPA设计器应用的另一示例图形元素检测技术配置接口700。如同图形元素检测技术配置接口600,图形元素检测技术配置接口700包括具有点击活动712的RPA工作流开发窗格710、图形元素检测技术配置窗格720和属性搜索字段730。然而,在该实施例中,其他图形元素检测技术被嵌套在统一目标技术721内。如果选择了统一目标技术721(如在图7中),那么将使用统一目标方法,该统一目标方法在一段时间内串行地、并行地应用其他技术,或应用技术中的至少一种,然后在一段时间内没有找到匹配的情况下并行地采用至少一种其他技术。
如果取消选择统一目标技术721,那么开发者可以选择和取消选择期望的技术和/或属性。三角形722允许RPA开发者示出或隐藏针对每种图形元素检测技术的属性列表。图形元素检测技术选择复选框724允许RPA开发者一次性选择或取消选择针对给定图形元素检测技术的所有属性。属性复选框726允许RPA开发者选择或取消选择相应属性。在一些实施例中,可以针对属性采用模糊匹配。通过选择模糊匹配单选按钮728,RPA开发者可以使相应模糊匹配阈值字段729出现。
图8是图示了根据本发明的实施例的用于将RPA工作流配置为执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的过程800的流程图。在一些实施例中,过程800可以由图6或图7A和图7B的RPA设计器应用600或700执行。该过程开始于在810处接收RPA工作流中的活动选择,该活动选择要被配置为执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测。在一些实施例中,在820,基于由活动实现的动作(例如点击、取得文本、悬停等)、图形元素类型(例如按钮、文本字段等)和/或由RPA开发者指示的特定图形元素(即,用户在屏幕上选取了哪个元素以及在应用中存在哪些其他元素)来自动选择图形元素检测技术的类型和/或UI描述符属性。相对于特定图形元素,例如,如果RPA开发者点击一个确定按钮(OK button),但在屏幕上存在两个确定按钮,那么可以自动添加一些属性以区分两个其他方面相同的确定按钮。例如,当使用UI树时,通常以这种方式构建UI树:当RPA开发者指示屏幕上的图形元素时,与针对其他图形元素的情况相比,UI树中的至少一些属性针对该图形元素的情况为不同的。在830,RPA设计器应用可以从RPA开发者接收对图形元素检测技术的属性的选择和/或修改,以便定制地配置活动。
然后在840,RPA设计器应用基于所选图形元素检测技术和属性来配置活动。如果将要配置更多活动,那么RPA开发者可以选择另一活动,并且过程返回到步骤810。在(多个)期望活动被配置后,在850,RPA设计器应用生成RPA机器人,以实现包括所配置的(多个)活动的RPA工作流。然后过程结束或继续进行至图9。
图9是图示了根据本发明的实施例的用于执行使用根据两种或更多种图形元素检测技术的UI描述符属性的组合的图形元素检测的过程900的流程图。在一些实施例中,过程900可以在运行时由经由图6或图7A和图7B的RPA设计器应用600或700创建的RPA机器人来实现。该过程开始于在910处分析UI(例如屏幕截图、应用窗口的图像等)以标识UI元素属性。UI元素属性可以包括但不限于图像、文本、图形元素之间的关系、UI中的图形元素的分层表示等。标识可以经由CV、OCR、API调用、文本文件(例如HTML、XML等)的分析、其组合等而被执行。
在已经分析了UI之后,在920,针对活动将UI元素属性与两种或更多种图形元素检测技术的所配置的UI描述符属性进行比较。例如,这可以是基于图8的步骤840中的活动的配置。如果在930经由精确匹配或阈值匹配找到了与图形元素检测技术的属性相匹配的UI元素,那么在940执行与涉及UI元素的活动相关联的动作(例如点击按钮、录入文本、与菜单进行交互等)。如果在950存在更多活动,那么过程针对下一个活动继续进行至步骤920。然而,如果在930没有找到与图形元素检测技术的属性相匹配的UI元素,那么在960抛出异常并且过程结束。
根据本发明的实施例,图8和图9中执行的过程步骤可以由计算机程序执行,该计算机程序编码有指令,该指令用于使(多个)处理器执行图8和图9中所描述的(多个)过程的至少一部分。计算机程序可以被实施在非瞬态计算机可读介质上。计算机可读介质可以是但不限于硬盘驱动器、闪存设备、RAM、磁带和/或用于存储数据的任何其他此类介质或介质的组合。计算机程序可以包括用于控制计算系统的(多个)处理器(例如图5的计算系统500的(多个)处理器510)以实现图8和图9中所描述的过程步骤中的全部或一部分的编码指令,这些编码指令还可以被存储在计算机可读介质上。
计算机程序可以被实现在硬件、软件或混合实现中。计算机程序可以由彼此可操作地通信并且被设计成传递信息或指令以进行显示的模块组成。计算机程序可以被配置为在通用计算机、ASIC或任何其他合适的设备上操作。
将容易地理解,如本文中的诸图中大体上描述和图示的,本发明的各种实施例的组件可以以多种不同配置来布置和设计。因此,如附图中所表示,对本发明的实施例的详细描述并不旨在限制所要求保护的本发明的范围,而是仅仅表示本发明的所选择的实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。例如,贯穿本说明书,对“某些实施例”、“一些实施例”或类似语言的参考是指结合实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在某些实施例中”、“在一些实施例中”、“在其他实施例中”或类似语言的出现并不一定全都是指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
应注意,贯穿本说明书,对特征、优点或类似语言的参考并不意味着可以用本发明实现的所有特征和优点都应该在或都在本发明的任何单个实施例中。相反,涉及特征和优点的语言被理解为是指结合实施例所描述的特定特征、优点或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书,对特征和优点以及类似语言的讨论可以但并不一定是指相同实施例。
此外,本发明的所描述的特征、结构和特性可以在一个或多个实施例中以任何合适的方式组合。相关领域的技术人员应认识到,可以在不具有特定实施例的特定特征或优点中的一者或多者的情况下实践本发明。在其他情况下,可以不存在于本发明的所有实施例中的附加特征和优点在某些实施例中可能被识别。
本领域的普通技术人员应容易地理解,可以利用不同顺序的步骤和/或利用与所公开的配置不同的配置的硬件元件来实践如上文所描述的本发明。因此,尽管已经基于这些优选实施例描述了本发明,但对于本领域的技术人员而言将明显的是,某些修改、变型和备选构造将是明显的,同时仍在本发明的精神和范围内。因此,为了确定本发明的界限和边界,应当参考所附权利要求书。
Claims (21)
1.一种用于检测用户接口(UI)中的图形元素的计算机实现的方法,包括:
由设计器应用接收对要在机器人流程自动化(RPA)工作流中被配置的活动的选择;
由所述设计器应用接收对以下各项的选择和/或修改:多种图形元素检测技术中的一种或多种图形元素检测技术、所述图形元素检测技术的一个或多个UI描述符属性、或者上述的组合;以及
由所述设计器应用基于所接收到的所述选择和/或修改来配置所述活动。
2.根据权利要求1所述的计算机实现的方法,还包括:
由所述设计器应用自动配置所述图形元素检测技术中的一种或多种图形元素检测技术、所述UI描述符属性中的一个或多个UI描述符属性、或者两者。
3.根据权利要求2所述的计算机实现的方法,其中所述自动配置由所述设计器应用基于以下各项而被执行:由所述活动实现的动作、所述目标图形元素的类型、所述UI中的一个或多个其他图形元素的存在、或者上述的组合。
4.根据权利要求1所述的计算机实现的方法,其中根据权利要求1所述的过程针对至少一个附加活动而被重复。
5.根据权利要求1所述的计算机实现的方法,还包括:
由所述设计器应用生成RPA机器人,所述RPA机器人被配置为实现所配置的所述活动。
6.根据权利要求5所述的计算机实现的方法,其中所述RPA机器人被配置为将所述UI描述符属性的子集用于所述多种图形元素检测技术中的至少一种图形元素检测技术。
7.根据权利要求5所述的计算机实现的方法,还包括:
由所述RPA机器人在运行时分析UI,以标识UI元素属性;
由所述RPA机器人针对所述活动将所述UI元素属性与所配置的所述UI描述符属性进行比较;并且
当与所述多种图形元素检测技术的所述属性相匹配的UI元素经由精确匹配或阈值匹配而被找到时:
由所述RPA机器人采取与涉及所述UI元素的所述活动相关联的动作。
8.根据权利要求7所述的计算机实现的方法,其中所述UI属性包括图像、文本、所述UI中的图形元素之间的关系、所述UI中的所述图形元素的分层表示、或者上述的组合。
9.根据权利要求7所述的计算机实现的方法,其中根据权利要求7所述的过程针对至少一个附加活动而被重复。
10.根据权利要求1所述的计算机实现的方法,其中所述UI描述符的类型包括以下中的两项或更多项:选择器、计算机视觉(CV)描述符、图像匹配描述符、和光学字符识别(OCR)描述符。
11.一种被体现在非瞬态计算机可读介质上的计算机程序,所述计算机程序被配置为使至少一个处理器:
接收对要在机器人流程自动化(RPA)工作流中被配置的活动的选择;
接收对以下各项的选择和/或修改:多种图形元素检测技术中的一种或多种图形元素检测技术、所述图形元素检测技术的一个或多个UI描述符属性、或者上述的组合;以及
基于所接收到的所述选择和/或修改来配置所述活动。
12.根据权利要求11所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
自动配置所述图形元素检测技术中的一种或多种图形元素检测技术、所述UI描述符属性中的一个或多个UI描述符属性、或者两者。
13.根据权利要求12所述的计算机程序,其中所述自动配置基于以下各项而被执行:由所述活动实现的动作、所述目标图形元素的类型、所述UI中的一个或多个其他图形元素的存在、或者上述的组合。
14.根据权利要求11所述的计算机程序,其中根据权利要求11所述的过程针对至少一个附加活动而被重复。
15.根据权利要求11所述的计算机程序,其中所述计算机程序还被配置为使所述至少一个处理器:
生成RPA机器人,所述RPA机器人被配置为实现所配置的所述活动。
16.根据权利要求15所述的计算机程序,其中所述RPA机器人被配置为将所述UI描述符属性的子集用于所述多种图形元素检测技术中的至少一种图形元素检测技术。
17.根据权利要求11所述的计算机程序,其中UI描述符的所述类型包括以下中的两项或更多项:选择器、计算机视觉(CV)描述符、图像匹配描述符、和光学字符识别(OCR)描述符。
18.一种被体现在非瞬态计算机可读介质上的计算机程序,所述计算机程序被配置为使至少一个处理器:
在运行时分析用户接口(UI),以标识UI元素属性;
针对机器人流程自动化(RPA)工作流的活动将所述UI元素属性与根据多种图形元素检测技术的UI描述符属性进行比较;并且
当与所述多种图形元素检测技术的所述属性相匹配的UI元素经由精确匹配或阈值匹配而被找到时:
采取与涉及所述UI元素的所述活动相关联的动作。
19.根据权利要求18所述的计算机程序,其中所述UI属性包括图像、文本、所述UI中的图形元素之间的关系、所述UI中的所述图形元素的分层表示、或者上述的组合。
20.根据权利要求18所述的计算机程序,其中根据权利要求18所述的过程针对至少一个附加活动而被重复。
21.根据权利要求18所述的计算机程序,其中所述UI描述符的类型包括以下中的两项或更多项:选择器、计算机视觉(CV)描述符、图像匹配描述符、和光学字符识别(OCR)描述符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/990,709 | 2020-08-11 | ||
US16/990,709 US11301268B2 (en) | 2020-08-11 | 2020-08-11 | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques |
PCT/US2020/051880 WO2022035449A1 (en) | 2020-08-11 | 2020-09-21 | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114341788A true CN114341788A (zh) | 2022-04-12 |
Family
ID=72709040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080002307.9A Pending CN114341788A (zh) | 2020-08-11 | 2020-09-21 | 使用根据两种或更多种图形元素检测技术的用户接口描述符属性的组合的图形元素检测 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3955108B1 (zh) |
JP (1) | JP2023537540A (zh) |
KR (1) | KR102447072B1 (zh) |
CN (1) | CN114341788A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428535B1 (en) | 2004-06-25 | 2008-09-23 | Apple Inc. | Automatic relevance filtering |
WO2020006076A1 (en) | 2018-06-27 | 2020-01-02 | Q2 Software, Inc. | Method and system for automating web processes utilizing an abstractable underlying platform layer |
US10654166B1 (en) | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
-
2020
- 2020-09-21 CN CN202080002307.9A patent/CN114341788A/zh active Pending
- 2020-09-21 JP JP2020553478A patent/JP2023537540A/ja active Pending
- 2020-09-21 KR KR1020207028106A patent/KR102447072B1/ko active IP Right Grant
- 2020-09-30 EP EP20199165.0A patent/EP3955108B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023537540A (ja) | 2023-09-04 |
KR20220021377A (ko) | 2022-02-22 |
EP3955108A1 (en) | 2022-02-16 |
EP3955108B1 (en) | 2024-02-21 |
KR102447072B1 (ko) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307876B1 (en) | Automated remedial action to expose a missing target and/or anchor(s) for user interface automation | |
US11301268B2 (en) | Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques | |
US20230168654A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation | |
CN116057504A (zh) | 机器人流程自动化的用户界面(ui)描述符、ui对象库、ui对象储存库和ui对象浏览器 | |
CN116324697A (zh) | 用于机器人过程自动化的用户接口(ui)映射器 | |
CN114868109B (zh) | 用户界面自动化中的自动锚点确定和目标图形元素标识 | |
CN113366492B (zh) | 专用图形元素检测 | |
US11232170B1 (en) | Application-specific graphical element detection | |
EP3909722A1 (en) | Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation | |
KR102444398B1 (ko) | 그래픽 요소 검색 기술 선택, 앵커 및 타겟의 퍼지 논리 선택, 및/또는 로봇 프로세스 자동화를 위한 계층적 그래픽 요소 식별 | |
EP3964947A1 (en) | Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both | |
CN113168169A (zh) | 用于机器人过程自动化的测试自动化 | |
KR102447072B1 (ko) | 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출 | |
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 |