CN116483487A - 基于浏览器的机器人过程自动化机器人设计界面 - Google Patents
基于浏览器的机器人过程自动化机器人设计界面 Download PDFInfo
- Publication number
- CN116483487A CN116483487A CN202310042926.6A CN202310042926A CN116483487A CN 116483487 A CN116483487 A CN 116483487A CN 202310042926 A CN202310042926 A CN 202310042926A CN 116483487 A CN116483487 A CN 116483487A
- Authority
- CN
- China
- Prior art keywords
- rpa
- target
- web browser
- driver
- robot
- 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
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- 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
- 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/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- 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/0483—Interaction with page-structured environments, e.g. book metaphor
-
- 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
- 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/04842—Selection of displayed objects or displayed text elements
-
- 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
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- 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/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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Digital Computer Display Output (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开的实施例涉及基于浏览器的机器人流程自动化机器人设计界面。在一些实施例中,在第一浏览器窗口/选项卡内执行的机器人过程自动化(RPA)代理与被注入在第二浏览器窗口/选项卡内显示的目标网页中的RPA驱动程序交互。桥接模块在RPA代理和RPA驱动程序之间建立通信信道。在一个示例性用例中,RPA代理展示机器人设计界面,而RPA驱动程序检测用户与目标网页的交互,并将表征交互的数据传输到RPA代理以用于构建机器人规范。
Description
技术领域
本发明涉及机器人过程自动化(RPA),并且尤其涉及在web浏览器内执行RPA活动。
背景技术
RPA是一个新兴的信息技术领域,旨在通过自动化重复性计算任务来提高生产率,从而解放人工操作员执行更复杂的智力和/或创造性活动。针对自动化的显著任务包括从文档(例如,发票、网页)中提取结构化数据以及与用户界面交互,例如填写表格、发送电子邮件以及向社交媒体站点发布消息等。
RPA开发的一个独特动力是将RPA技术的覆盖范围扩展到跨越多个硬件和软件平台的广大开发人员和行业受众。
发明内容
根据一个方面,一种方法包括采用计算机系统的至少一个硬件处理器来执行第一web浏览器进程、第二web浏览器进程和桥接模块。桥接模块被配置为在第一web浏览器进程和第二web浏览器进程之间建立通信信道。第一web浏览器进程执行RPA驱动程序(driver),驱动程序配置为:检测用户输入,该用户输入指示在第一web浏览器窗口内显示的目标网页的目标元素,以及经由通信信道将表征目标元素的目标标识数据集合发送到第二web浏览器进程。第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,机器人设计界面被配置为输出RPA机器人的规范,该RPA机器人被配置为在目标元素上执行RPA活动。
根据另一方面,一种计算机系统包括被配置为执行第一web浏览器进程、第二web浏览器进程和桥接模块的至少一个硬件处理器。桥接模块被配置为在第一web浏览器进程和第二web浏览器进程之间建立通信信道。第一web浏览器进程执行RPA驱动程序,驱动程序配置为:检测用户输入,该用户输入指示在第一web浏览器窗口内显示的目标网页的目标元素,以及经由通信信道将表征目标元素的目标标识数据集合发送到第二web浏览器进程。第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,机器人设计界面被配置为输出RPA机器人的规范,该RPA机器人被配置为在目标元素上执行RPA活动。
根据另一方面,一种非瞬态计算机可读介质存储指令,指令当由计算机系统的至少一个硬件处理器执行时,使计算机系统形成桥接模块,桥接模块被配置为在第一web浏览器进程和第二web浏览器进程之间建立通信信道,第一web浏览器进程和第二web浏览器进程在计算机系统上执行。第一web浏览器进程执行RPA驱动程序,驱动程序配置为:检测用户输入,该用户输入指示在第一web浏览器窗口内显示的目标网页的目标元素的用户输入,以及经由通信信道将表征目标元素的目标标识数据集合发送到第二web浏览器进程。第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,机器人设计界面被配置为输出RPA机器人的规范,该RPA机器人被配置为在目标元素上执行RPA活动。
附图说明
阅读下面的详细描述并参考附图将更好地理解本发明的上述方面和优点,其中:
图1示出了根据本发明的一些实施例的示例性机器人过程自动化(RPA)环境。
图2示出了根据本发明的一些实施例的RPA机器人和编排器(orchestrator)的示例性组件和操作。
图3示出了根据本发明的一些实施例的RPA包(package)的示例性组件。
图4示出了根据本发明的一些实施例的各种RPA主机系统。
图5示出了根据本发明的一些实施例在RPA主机系统上执行的示例性软件组件。
图6-A示出了根据本发明的一些实施例的用于在浏览器内执行RPA活动的示例性配置。
图6-B示出了根据本发明的一些实施例的用于在浏览器内执行RPA活动的另一示例性配置。
图7示出了根据本发明的一些实施例的由代理浏览器窗口展示的示例性机器人设计界面。
图8示出了根据本发明的一些实施例的示例性活动配置界面。
图9示出了根据本发明的一些实施例的在目标浏览器窗口内展示的示例性目标网页以及目标标识数据集合。
图10示出了根据本发明的一些实施例的示例性目标配置界面。
图11示出了根据本发明的一些实施例的由桥接模块执行的示例性步骤序列。
图12示出了根据本发明的一些实施例的由RPA代理执行的示例性步骤序列。
图13示出了根据本发明的一些实施例的由RPA驱动程序执行的示例性步骤序列。
图14示出了根据本发明的一些实施例的示例性目标和锚点突出显示(highlighting)。
图15示出了根据本发明的一些实施例的由桥接模块执行的另一示例性步骤序列。
图16示出了根据本发明的一些实施例的由RPA代理执行的另一示例性步骤序列。
图17示出了根据本发明的一些实施例的由RPA驱动程序执行的另一示例性步骤序列。
图18示出了被编程为执行本文描述的一些方法的计算机系统的示例性硬件配置。
具体实施方式
在下面的描述中,应当理解,结构之间的所有所记载的连接可以是直接操作连接或通过中间结构的间接操作连接。元素集合包括一个或多个元素。元素的任何记载都被理解为指至少一个元素。多个元素包括至少两个元素。‘或’的任何用法都表示非排他的或。除非另有要求,否则不必以特定的图示顺序执行任何所描述的方法步骤。从第二元素导出的第一元素(例如数据)包括等于第二元素的第一元素,以及通过处理第二元素和可选的其他数据而生成的第一元素。根据参数进行确定或决定包括根据参数以及可选地根据其他数据进行确定或决定。除非另有说明,某些数量/数据的指示符可以是数量/数据本身,也可以是与数量/数据本身不同的指示符。计算机程序是执行任务的处理器指令序列。在本发明的一些实施例中描述的计算机程序可以是独立的软件实体或其他计算机程序的子实体(例如,子例程、库)。进程是计算机程序的实例,该实例的特征在于具有分配给它的至少一个执行线程和单独的虚拟存储空间,其中相应虚拟存储空间的内容包括可执行代码。本文使用的术语‘数据库’表示任何有组织的、可搜索的数据集合。计算机可读介质包括诸如磁、光和半导体存储介质(例如,硬盘驱动器、光盘、闪存、DRAM)的非瞬态介质,以及诸如导电电缆和光纤链路的通信链路。根据一些实施例,本发明提供了包括被编程以执行本文描述的方法的硬件(例如,一个或多个处理器)以及计算机可读介质编码指令以执行本文描述的方法的计算机系统等等。
以下描述以示例的方式,但不一定以限制的方式说明本发明的实施例。
图1示出了根据本发明的一些实施例的示例性机器人过程自动化(RPA)环境10。环境10包括协作以实现特定任务的自动化的各种软件组件。在示例性RPA场景中,公司的员工使用业务应用(例如,文字处理器、电子表格编辑器、浏览器、电子邮件应用)来执行重复性任务,例如向各种客户开具发票。为了实际执行相应的任务,员工执行操作/动作的序列,例如打开Microsoft电子表格、查找客户的公司详细信息、将相应的详细信息复制到发票模板中、填写指示所购买的物品的发票字段、切换到电子邮件应用、向相应的客户编写电子邮件消息、将新创建的发票附加到相应的电子邮件消息、以及点击‘发送’按钮。RPA环境10的各种元素可以通过模仿由相应的人工操作员在执行相应任务的过程中执行的操作集合来自动化相应的过程。
模仿人工操作/动作在本文被理解为包括再现当人工操作员在计算机上执行相应操作/动作时发生的计算事件的序列,以及再现人工操作员在计算机上执行相应操作的结果。例如,模仿点击图形用户界面(GUI)的按钮的动作可以包括使操作系统将鼠标指针移动到相应按钮并生成鼠标点击事件,或者可以备选地包括将相应的GUI按钮本身切换到点击状态。
通常针对RPA自动化的活动包括处理支付、开具发票、与业务客户通信(例如,分发时事通讯和/或产品样本)、内部通信(例如,备忘录、会议调度和/或任务)、审计和薪资处理等。在一些实施例中,专用RPA设计应用30(图2)使人工开发人员能够设计软件机器人以实现有效地使人工动作序列自动化的工作流。工作流在本文表示自定义自动化步骤的序列,在本文被视为RPA活动。每个RPA活动包括由机器人执行的至少一个操作,例如点击按钮、读取文件、写入电子表格单元格等。活动可以是嵌套的和/或嵌入的。在一些实施例中,RPA设计应用30展示向开发人员提供对工作流的RPA活动之间的执行顺序和关系的控制的用户界面和工具集合。RPA设计应用30的实施例的一个商业示例是UiPath在本发明的一些实施例中,RPA设计应用30的至少一部分可以在浏览器内执行,如下所述。
某些类型的工作流可以包括但不限于序列、流程图、有限状态机(FSM)和/或全局异常处理程序。序列可能特别适用于线性流程,支持从一个活动到另一活动的流动,而不会扰乱工作流。流程图可能特别适用于更复杂的业务逻辑,支持通过多个分支逻辑运算符以更多样化的方式的决策集成和活动连接。FSM可能特别适用于大型工作流。FSM可以在其执行中使用有限数量的状态,这些状态由条件(即,转换)或活动触发。全局异常处理程序可能特别适用于在遇到执行错误时确定工作流行为以及调试进程。
一旦开发了RPA工作流,就可以将其编码为计算机可读的形式并作为RPA包40(图2)导出。在如图3所示的一些实施例中,RPA包40包括RPA脚本42的集合,其包括用于软件机器人的指令集。(多个)RPA脚本42可以根据本领域中已知的任何数据规范来制定,例如在可扩展标记语言(XML)、对象符号(JSON)或诸如C#、Visual等编程语言的版本中。备选地,(多个)RPA脚本42可以以RPA专用版本的字节码来制定,或者甚至可以作为以诸如英语、西班牙语、日语等自然语言制定的指令序列来制定。在一些实施例中,(多个)RPA脚本42被预编译成本地处理器指令集(例如,机器代码)。
在一些实施例中,RPA包40还包括指示在执行期间由相应机器人使用的进程资源集合的资源规范44。示例性进程资源包括凭证集合、计算机文件、队列、数据库和网络连接/通信链路等。凭证在本文一般表示访问特定RPA主机和/或执行特定软件组件所需的私有数据(例如,用户名、密码)。凭证可以包括加密数据;在这种情况下,执行机器人可以拥有用于解密相应数据的密钥。在一些实施例中,凭证资源可以采取计算机文件的形式。备选地,示例性凭证资源可以包括对保存实际凭证的数据库的查找关键字(例如,散列索引)。这样的数据库在本领域中有时被称为凭证库。队列在本文表示保持相同类型的项目(例如,计算机文件、结构化数据对象)的有序集合的容器。示例性队列包括发票集合和电子邮件收件箱的内容等。队列项目的排序可以指示执行机器人应该处理相应项目的顺序。
在一些实施例中,对于每个进程资源,规范44包括表征相应资源的元数据集合。示例性资源特征/元数据包括相应资源的资源类型的指示符、文件名、用于访问相应资源的文件系统路径和/或其他位置指示符、相应资源的大小和版本指示符等。资源规范44可以根据本领域中已知的任何数据格式来制定,例如作为XML或JSON脚本、关系数据库等。
本领域技术人员将理解,RPA设计应用30可以包括可在不同物理机器上执行的多个组件/模块。在一个示例中,RPA设计应用30可以在客户端-服务器配置中执行,其中应用30的一个组件可以向客户端计算机的用户展示机器人设计界面,并且在服务器计算机上执行的应用30的另一组件可以组装机器人工作流并制定/输出RPA包40。例如,开发人员可以经由在客户端计算机上执行的web浏览器访问机器人设计界面,而软件制定包40实际上在服务器计算机上执行。
一旦制定,那么(多个)RPA脚本42可以由机器人12a-12c的集合(图1)执行,其还可以由编排器14控制和协调。机器人12a-12c和编排器14可以各自包括多个计算机程序,其可以在相同的物理机器上执行,也可以不在相同的物理机器上执行。机器人12a-12c和编排器14的示例性商业实施例分别包括UiPath和UiPath/>在本发明的一些实施例中,RPA机器人的至少一部分可以在浏览器内执行,如下所述。
机器人12a-12c的类型包括但不限于有人值守机器人、无人值守机器人、开发机器人(类似于无人值守机器人,但用于开发和测试目的)和非生产机器人(类似于有人值守机器人,但用于开发和测试目的)。
有人值守机器人由用户事件和/或命令触发,并在同一计算系统上与人工操作员一起操作。例如,在一些实施例中,有人值守机器人只能从机器人托盘或命令提示符启动,因此不能从编排器14控制,并且不能在锁定屏幕下运行。无人值守机器人可以在远程虚拟环境中无人值守地运行,并且可以负责远程执行、监控、调度和为工作队列提供支持。
编排器14控制和协调多个机器人12a-12c的执行。因此,编排器14可以具有各种能力,包括但不限于为机器人12a-12c提供供应、部署、配置、调度、排队、监控、日志记录和/或提供互连。供应可以包括创建和维护机器人12a-12c和编排器14之间的连接。部署可以包括确保将软件(例如,RPA脚本42)正确地递送到机器人12a-12c以供执行。配置可以包括维护和递送机器人环境、资源和工作流配置。调度可以包括配置机器人12a-12c以根据特定调度(例如,在一天的特定时间、在特定日期、每天等)执行各种任务。排队可以包括提供作业队列的管理。监控可以包括追踪机器人状态和维护用户权限。日志记录可以包括将日志存储和索引到数据库和/或另一存储机制(例如,SQL、)。编排器14还可以充当第三方解决方案和/或应用的集中式通信点。
图2示出了根据本发明的一些实施例的机器人12和编排器14的示例性组件。使用来自微软公司的Workflow Foundation应用编程接口来构建示例性RPA机器人12。机器人12可以包括机器人执行器22的集合和机器人管理器24。机器人执行器22被配置为接收指示模仿人工操作员的动作的RPA活动序列的(多个)RPA脚本42,并在相应的客户端机器上自动执行相应的活动序列。在一些实施例中,(多个)机器人执行器22包括解释器(例如,即时解释器或编译器),其被配置为将(多个)RPA脚本42翻译成运行时对象,该运行时对象包括用于执行在相应(多个)脚本中编码的RPA活动的处理器指令。因此,(多个)执行脚本42可以包括(多个)执行器22,其翻译(多个)RPA脚本42并指示相应主机的处理器将所得到的运行时包加载到存储器中并启动执行运行时包。
机器人管理器24可以管理(多个)机器人执行器22的操作。例如,机器人管理器24可以根据来自人工操作员的输入和/或根据调度来选择由(多个)机器人执行器22执行的任务/脚本。管理器24可以开始和停止作业,并配置(多个)执行器22的各种操作参数。当机器人12包括多个执行器22时,管理器24可以协调它们的活动和/或进程间通信。管理器24还可以管理RPA机器人12、编排器14和/或其他实体之间的通信。
在一些实施例中,机器人12和编排器14可以在客户端-服务器配置中执行。应当注意,在不偏离本发明的范围的情况下,客户端侧、服务器侧或两者可以包括任何期望数量的计算系统(例如,物理机或虚拟机)。在这样的配置中,包括(多个)执行器22和机器人管理器24的机器人12可以在客户端侧执行。机器人12可以同时运行几个作业/工作流。机器人管理器24(例如,服务)可以充当多个执行器22的单个客户端侧联系点。管理器24还可以管理机器人12和编排器14之间的通信。在一些实施例中,通信由管理器24发起,管理器24可以打开到编排器14的WebSocket信道。管理器24随后可以使用该信道向编排器14发送关于每个执行器22的状态的通知,例如作为心跳信号。接着,编排器14可以使用该信道来向机器人12发送确认、作业请求以及诸如(多个)RPA脚本42和资源元数据的其他数据。
编排器14可以在服务器侧执行,可能分布在多个物理和/或虚拟机上。在一个这样的实施例中,编排器14可以包括可以是web应用的编排器用户界面(UI)17和服务模块19的集合。下面讨论编排器UI的几个示例。服务模块19可以包括开放数据协议(OData)表述性状态传输(REST)应用编程接口(API)端点集合和服务API/业务逻辑集合。用户可以经由编排器UI 17与编排器14交互(例如,通过在浏览器上打开专用编排器界面),以指示编排器14执行各种动作,这些动作可以包括例如开始所选机器人12上的作业、创建机器人组/池、向机器人分配工作流、向/从队列添加/移除数据、调度作业以无人值守地运行、分析每个机器人或工作流的日志等。可以使用超文本标记语言(HTML)、或任何其他web技术来实现编排器UI 17。
编排器14可以通过选择性地调用服务API/业务逻辑来执行用户请求的动作。此外,编排器14可以使用REST API端点来与机器人12通信。REST API可以包括配置、日志记录、监控和排队功能。配置端点可以用来定义和/或配置用户、机器人、许可、凭证和/或其他进程资源等。日志记录REST端点可以用来记录不同的信息,例如错误、由机器人发送的显式消息和其他特定于环境的信息。机器人可以使用部署REST端点来查询要执行的(多个)RPA脚本42的版本。排队REST端点可以负责队列和队列项管理,诸如向队列添加数据、从队列获取事务、设置事务的状态等。监控REST端点可以监控编排器14和机器人管理器24的web应用组件。
在一些实施例中,RPA环境10(图1)还包括连接到RPA数据库18的数据库服务器16。在其中在云计算平台上供应服务器16的实施例中,服务器16可以被实施为数据库服务,例如,具有数据库连接器集合的客户端。数据库服务器16被配置为在/从数据库18中选择性地存储和/或检索与RPA环境10相关的数据。这样的数据可以包括各种单个机器人或机器人池的配置参数,以及表征由各种机器人执行的工作流的数据,将工作流与负责执行它们的机器人相关联的数据,表征用户、角色、调度、队列等的数据。由数据库服务器16存储和/或检索的另一示例性数据类别包括表征每个执行机器人的当前状态的数据。由数据库服务器16存储和/或检索的另一示例性数据类别包括表征各种工作流所需的RPA资源的RPA资源元数据,例如诸如文件名、位置、凭证等的各种资源属性的缺省和/或运行时值。又一示例性数据类别包括由各种机器人在执行期间记录的消息。数据库服务器16和数据库18可以采用本领域中已知的任何数据存储协议和格式,例如结构化查询语言(SQL)、和等。在一些实施例中,由编排器14例如经由日志记录REST端点来收集和管理数据。编排器14还可以向数据库服务器16发出结构化查询。
在一些实施例中,RPA环境10(图1)还包括互连环境10的各种成员的通信信道/链路15a-15e。这样的链路可以根据本领域中已知的任何方法来实现,例如作为虚拟网络链路、虚拟专用网络(VPN)或端到端隧道。一些实施例还对在一些或所有链路15a-15e上流通的数据进行加密。
本领域技术人员将理解,RPA环境10的各种组件可以在不同的主计算机系统(物理设备和/或虚拟机)上实现和/或执行。图4示出了根据本发明的一些实施例的各种这样的RPA主机系统20a-20e。每个主机系统20a-20e表示具有至少一个硬件处理器和用于存储处理器指令和/或数据的存储单元的计算系统(单个计算装置或互连的计算机集合)。示例性RPA主机20a-20c包括公司大型计算机、个人计算机、膝上型和平板计算机、移动通信设备(例如,智能电话)和电子书阅读器等。图示为项目20d-20e的其他示例性RPA主机包括云计算平台,该云计算平台包括根据特定于平台的协议集中管理的多个互连的服务器计算机系统。客户端可以使用特定于平台的接口/软件层/库(例如,软件开发工具包-SDK、插件等)和/或特定于平台的命令语法来与这样的云计算平台交互。示例性特定于平台的接口包括SDK和/>SDK等。RPA主机20a-20e可以通过诸如互联网的通信网络13通信地耦合。
图5示出了根据本发明的一些实施例的在RPA主机20上执行的示例性软件,其中主机20可以表示图4中的RPA主机20a-20e中的任何一个。操作系统(OS)31可以包括任何广泛可用的操作系统,例如Microsoft等,其包括在RPA主机20的硬件与诸如web浏览器进程32的集合和桥接模块34等其他软件应用之间接口的软件层。本文的web浏览器进程32表示其主要目的是获取和呈现web内容(网页)的任何软件。示例性web浏览器进程包括诸如Google/>Microsoft/>和Mozilla/>等商业web浏览器的任何实例。现代web浏览器通常允许同时显示多个web文档,例如在单独的窗口或浏览器选项卡中。出于计算机安全原因,在一些这样的应用中,每个不同的浏览器窗口、标签和/或帧可以由与在相应主机上执行的其他web浏览器进程隔离的不同web浏览器进程来呈现。本文的软件隔离指的是每个浏览器进程具有其自己的不同存储空间,例如其自己的本地变量/自变量。隔离还确保每个浏览器进程不会注意到除其自己的浏览器窗口之外的其他浏览器窗口中显示的任何内容。本文的隔离包括由本地OS实施的隔离和由web浏览器应用本身独立于OS实施的隔离。
在一些实施例中,RPA主机20执行桥接模块34,其被配置为在至少两个不同的浏览器进程32之间建立通信信道。本文的通信信道表示在相应浏览器进程之间传输数据的任何手段。本领域技术人员将知道,可以有许多方式来建立这种进程间通信,例如通过将每个浏览器进程的虚拟存储器的区域(例如,虚拟存储器页)映射到相同的物理存储器区域(例如,物理存储器页),使得相应的浏览器进程可以通过向相应的存储器页写入相应的数据和/或从相应的存储器页读取相应的数据来交换数据。桥接模块34可以使用的其他示例性进程间通信手段包括套接字(即,经由RPA主机20的网络接口传输数据)、管道、文件和消息传递等。在本发明的一些实施例中,桥接模块34包括如下进一步描述的浏览器扩展计算机程序。本文的术语‘浏览器扩展’表示扩展浏览器应用的本机功能并且在相应的浏览器应用内执行(即,使用浏览器进程来执行)的附加定制计算机程序。
图6-A至图6-B示出了根据本发明的一些实施例的在浏览器中执行RPA活动的示例性方式。在图6-A的示例性配置中,第一浏览器进程32a展示代理浏览器窗口36a,而第二浏览器进程32展示目标浏览器窗口36b。在一个这样的示例中,浏览器窗口36a-36b表示由诸如Google的商业web浏览器应用的实例打开的不同的浏览器选项卡。在一些实施例中,代理浏览器窗口36a显示使用户能够执行自动化任务的RPA界面,例如设计RPA机器人或执行RPA机器人等。这些用例将在下面单独讨论。一些实施例采用目标浏览器窗口36b来获取和显示包括相应RPA任务的目标/运算元(operand)的web文档,例如,要自动点击的按钮、要自动填写的表格、要自动抓取的一段文本或图像等。
一些现代浏览器支持呈现包括可执行代码片段的web文档。相应可执行代码可以控制如何向用户显示相应文档的内容、管理第三方内容(例如广告、天气、股市更新)的分发和显示、收集表征相应用户的浏览习惯的各种数据等。这样的可执行代码可以嵌入到相应文档中或从相应文档超链接。示例性浏览器可执行代码可以预编译或以脚本语言或字节码形式表示,以用于运行时解释或编译。示例性脚本语言包括和/>等。为了实现代码执行,一些浏览器包括解释器,该解释器被配置为将接收到的代码从脚本语言/字节码翻译成适合于在相应主机平台上执行的形式,并提供用于在其中运行相应代码的托管环境。
本发明的一些实施例使用浏览器进程32a和代理浏览器窗口36a来加载包括可执行RPA代理31的web文档,可执行RPA代理31例如以制定。在各种实施例中,RPA代理31可以实现RPA设计应用30的一些功能和/或RPA机器人12的一些功能,如下详细所示。可以从远程存储库/服务器获取RPA代理31,例如通过将浏览器进程32a指向指示代理31的地址的预定统一资源定位符(URL)。响应于获取RPA代理31,浏览器进程32a可以在特定于进程32a和/或代理浏览器窗口36a的隔离环境中解释并执行代理31。
一些实施例还向浏览器进程32b和/或目标窗口36b提供RPA驱动程序25。驱动程序25一般表示软件模块集合,其承载低级处理任务,诸如构造、解析和/或修改当前在目标浏览器窗口36b内显示的文档的文档对象模型(DOM),标识相应文档的元素(例如,按钮、表单字段),改变元素的屏幕外观(例如,颜色、位置、大小),绘制形状,确定光标的当前位置,登记和/或执行诸如鼠标、键盘和/或触摸屏事件的输入事件,检测手持设备的当前姿势/方向等。在一些实施例中,RPA驱动程序25被实施为注入到浏览器进程32b和/或当前在目标窗口36b内呈现的目标文档中的脚本集合。
图6-A还示出了桥接模块34在浏览器进程32a-32b之间建立通信信道38。在图6-B所示的一些实施例中,桥接模块34被放置为进程32a-32b之间的中介。在这样的实施例中,通信信道连接进程32a-32b一般由信道138a-138b表示。当被置于如图6-B所示的配置中时,桥接模块34可以截取、分析和/或更改由RPA代理31和RPA驱动程序25交换的一些数据,然后将其转发到其预期目的地。在一个这样的示例中,桥接模块34可以根据经由通信信道138a-138b交换的至少一些数据,在单独的桥接浏览器窗口36c(例如,单独的浏览器选项卡)内生成显示。桥接模块34例如可以被实施为由不同的浏览器进程32c执行的内容脚本集合(例如,模块34可以包括浏览器扩展)。
机器人设计实施例
一些实施例使用浏览器进程32a(图6-A至图6-B)将机器人设计界面加载到代理浏览器窗口36a中。图7示出了根据本发明的一些实施例的示例性机器人设计界面50。技术人员将理解,图示界面的内容和外观仅是示例性的,并不意味着是限制性的。界面50可以包括各种区域,例如菜单区域52和工作流设计区域51。菜单区域52可以使用户能够选择由RPA机器人执行的各个RPA活动。活动可以根据各种标准来分组,例如,根据用户交互的类型(例如,点击、轻敲、手势、热键)、根据数据的类型(例如,文本相关的活动、图像相关的活动)、根据数据处理的类型(例如,导航、数据抓取、表格填充)等。在一些实施例中,可以经由菜单的层级结构来达到各个RPA活动。
工作流设计区域51可以显示再现当前正被自动化的业务过程的流程的活动序列的图(例如,流程图)。该界面可以展示各种控件,使用户能够添加、删除和重新安排序列的活动。通过示出为图7中的项54a-54b的活动配置UI,可以独立地配置每个RPA活动。用户界面54a-54b可以包括界面50的子窗口。图8示出了根据本发明的一些实施例的示例性活动配置界面54c。示例性界面54c配置‘键入(Type Into)’活动(即,填写web表单的输入字段),并展示字段集合,例如活动名称字段和活动参数字段集合,这些字段被配置为使用户能够设置当前活动的各种参数。在图8的示例中,参数字段58可以接收要写入目标表单字段的文本。用户可以直接或以相应输入文本的源的指示符的形式提供输入文本。示例性源可以包括电子表格的特定单元格/列/行、预定义变量的当前值(例如,通过执行相应工作流的先前RPA活动而产生的值)、位于指定URL的文档、来自当前目标文档的另一元素等。
当前RPA活动的另一示例性参数是相应活动的运算元/目标,本文表示RPA机器人应该对其进行操作的目标文档的元素。在所选活动包括鼠标点击的一个示例中,目标元素可以是按钮、菜单项、超链接等。在所选活动包括填写表单的另一示例中,目标元素可以是应该接收输入的特定表单字段。界面50、54可以使用户能够以各种方式指示目标元素。例如,它们可以邀请用户从候选菜单/列表中选择目标元素。在优选实施例中,活动配置界面54c可以指示用户直接在目标浏览器窗口36b内指示目标,例如通过点击或轻敲它。一些实施例展示目标配置控件56,其在被激活时使用户能够通过目标配置界面进一步指定目标。
在一些实施例中,RPA驱动程序25被配置为分析用户的输入以确定表征当前在目标浏览器窗口36b内显示的目标文档的元素的目标标识数据集合,即用户已经选择作为针对当前RPA活动的目标的元素。图9示出了包括在目标浏览器窗口36b内显示的登录表单的示例性目标文档。图9还示出了示例性目标UI元素60,本文为登录表单的第一输入字段。在一些实施例中,表征目标元素60的目标标识数据包括元素ID 62,其包括从目标文档的源代码表示中提取或根据目标文档的源代码表示确定的数据集合。术语‘源代码’在本文被理解为表示由用户界面显示的内容的程序性表示。在web文档的情况下,通常以超文本标记语言(HTML)的版本来制定源代码,但是技术人员将知道,诸如可扩展标记语言(XML)的其他语言和诸如的脚本语言也可以同样适用。在图9所示的示例中,元素ID 62包括目标文档的相应元素特有的属性-值对集合,属性-值对集合从目标文档的HTML码中提取。在一些实施例中,元素ID 62中包括的属性-值对集合将相应元素标识为目标文档的树状表示(例如,DOM)中的特定节点。例如,属性-值对集合可以指示相应元素是形成特定网页的特定区域的一部分的特定web表单的特定输入字段。
示例性目标标识数据还可以包括目标图像64,其包括相应目标元素的面向用户的图像的编码。例如,目标图像64可以包括与当前显示目标元素60的屏幕的有限区域相对应的像素值阵列、和/或根据相应像素值阵列(例如,相应像素值阵列的JPEG或小波表示)计算的值集合。在一些实施例中,目标图像64包括位于相应目标元素的边界内的屏幕图像的剪辑的内容。
目标标识数据还可以包括目标文本66,其包括在相应目标元素的屏幕边界内显示的文本(字母数字字符序列)的计算机编码。可以根据相应文档的源代码和/或根据将光学字符识别(OCR)过程应用于当前显示目标元素60的屏幕区域的结果来确定目标文本66。
在一些实施例中,表征目标元素60的目标标识数据还包括标识数据(例如,元素ID、图像、文本等),其表征目标网页的另一UI元素,在本文被认为是锚元素。锚在本文表示与目标元素共同显示的任何元素,即在目标网页的至少一些视图中与目标元素同时可见。在一些实施例中,锚元素是从显示在目标元素附近的UI元素中选择的,诸如标签、标题等。例如,在图9所示的目标界面中,锚候选可以包括第二表单字段(标记为‘密码’)和表单标题(‘登录’)等。在一些实施例中,RPA驱动程序25被配置为响应于用户选择RPA活动的目标而自动选择锚元素,如下面进一步详细描述的。在目标元素60的规范中包括锚特征数据可以便于目标的运行时标识,尤其是其中仅基于目标元素的特性的标识可能失败,例如当目标网页具有多个类似于目标的元素时。web表单可以具有多个‘姓氏(Last Name)’字段,例如,当被配置为接收关于多个个人的信息时。在这种情况下,仅基于搜索标记为“姓氏”的表单字段的目标标识策略可能会遇到困难,而进一步依赖锚点可能会消除歧义。
在一些实施例中,活动配置界面54c包括控件56,其在被激活时触发目标配置界面的显示,使用户能够可视化和编辑表征目标元素60的目标标识数据。图10示出了这样的目标配置界面70的示例,其可以由RPA代理31在代理浏览器窗口36a内显示。备选地,界面70可以由桥接模块34在桥接浏览器窗口36c内显示。在一些其他示例性实施例中,界面70可以由驱动程序25或注入到目标文档中的某个其他软件模块显示在目标浏览器窗口36b内。在一些实施例中,为了改善用户体验并清理显示器,目标配置界面70可以覆盖在相应浏览器窗口的当前内容上;覆盖可以成为焦点以将用户的注意力吸引到当前目标配置任务上。
在一些实施例中,目标配置界面70包括菜单72,其包括各种控件,例如用于指示目标元素和用于编辑目标标识数据的按钮,用于确认目标和/或目标标识数据的选择的按钮、用于选择与当前选择的目标元素相关联的锚元素并用于编辑锚标识数据的按钮,以及故障排除按钮等。当前显示的视图允许配置和/或确认目标元素的标识特征;类似的视图可以用于配置锚元素的标识特征。
界面70可以被组织成各种区域,例如用于显示目标文档的树表示(例如,DOM)的区域,这允许用户容易地将目标元素60可视化为相应树/DOM中的节点。目标配置界面70还可以显示元素ID 62,从而允许用户可视化表征相应目标元素的当前定义的属性-值对(例如,HTML标签)。一些实施例还可以包括使用户能够选择要包括在元素ID 62中的标签和/或属性的标签构建器窗格。
目标配置界面70还可以包括用于显示目标图像64、目标文本66和/或使用户能够为各个标签和/或属性设置附加匹配参数的属性匹配窗格的区域。在一个示例中,属性匹配窗格使用户能够指示机器人是使用精确匹配还是近似匹配来标识目标元素60的运行时实例。精确匹配要求所选属性的运行时值与针对相应目标元素的目标标识数据中包括的相应设计时值(design-time value)完全匹配。近似匹配可能只需要相应属性的设计时值和运行时值之间的部分匹配。针对文本类型的属性,示例性种类的近似匹配包括正则表达式、通配符和模糊匹配等。可以展示类似的配置字段以匹配锚属性。
图11示出了在本发明的一些机器人设计实施例中由桥接模块34执行的示例性步骤序列。在不损失一般性的情况下,所示序列可以应用于如图6-B所示的实施例,其中桥接模块34充当RPA代理31和RPA驱动程序25之间的通信的中介,并进一步在桥接浏览器窗口36c内显示目标配置界面70。在步骤302中,模块34可以在RPA主机20上当前展示的窗口/选项卡中标识目标浏览器窗口36b。在一些实施例中,RPA代理31可以显示列出所有当前打开的浏览器窗口/选项卡的菜单,并邀请用户选择作为自动化目标的一个。然后可以将所选窗口的指示符传递到模块34上。在其他实施例中,可以指示用户实例化新的浏览器窗口/选项卡,然后导航到期望的目标网页。作为响应,模块34可以将相应的窗口/选项卡标识为目标窗口36b,并将RPA驱动程序25加载到相应的窗口/选项卡中(步骤304)。备选地,桥接模块34可以将RPA驱动程序25的实例加载到所有当前打开的浏览器窗口/选项卡中。在桥接模块34包括浏览器扩展的实施例中,步骤304包括将内容脚本集合注入相应的目标文档/网页。
进一步的步骤306可以建立(多个)通信信道138a-138b。在浏览器进程32a-32b是Google浏览器的实例并且其中桥接模块34包括浏览器扩展的示例性实施例中,步骤306可以包括设置RPA代理31和驱动程序25然后可以用来交换数据的runtime.Port对象。在相应的浏览器应用不支持进程间通信而是允许对本地文件读取和/或写入数据的备选实施例中,代理31和驱动程序25可以将相应的本地文件用作存放和/或检索通信的容器。在这样的实施例中,步骤306可以包括为相应容器生成文件名并将其传送到RPA代理31和/或驱动程序25。在一个这样的示例中,可以定制注入的驱动程序以包括相应的文件名。在一些实施例中,步骤306包括为当前在相应RPA主机上展示的每个浏览器窗口/选项卡/框架设置不同的文件容器。在其他实施例中,代理31和驱动程序25可以经由远程服务器,例如编排器14(图2)或数据库服务器来交换通信。在一个这样的示例中,步骤306可以包括指示远程服务器设置容器(例如,文件或数据库对象),以保存在代理31和驱动程序25之间交换的数据,并将相应容器的参数在代理31和/或驱动程序25之间传送。这样的容器可以特定于在RPA主机20上执行的驱动程序25的每个实例。
在一些实施例中,桥接模块34在桥接浏览器窗口36c内展示目标配置界面70(步骤308)。在步骤310中,模块34然后可以监听来自RPA驱动程序25的通信;这样的通信可以包括如下所示的目标标识数据。响应于这样的通信,步骤312可以用相应的目标标识数据填充界面70,从而使用户能够查看、编辑和/或确认相应的目标元素选择。在一些实施例中,步骤312还可以包括接收包括对目标标识数据的改变的用户输入(例如,向/从元素ID 62添加或移除HTML标签或属性-值对、设置属性匹配参数等)。当用户确认当前目标标识数据时(步骤314返回是(YES)),在步骤316中,模块34可以将相应的目标标识数据转发到RPA代理31。
图12示出了在本发明的机器人设计实施例中由RPA代理31执行的示例性步骤序列。响应于在代理浏览器窗口36a内展示机器人设计界面(参见例如,图7中的示例性界面50和以上相关联的描述),步骤402可以接收选择由机器人执行的RPA活动的用户输入。例如,用户可以从界面50的活动菜单中选择RPA活动的类型(例如,键入表单字段)。作为响应,步骤404可以展示诸如图8(上文描述)所示的示例性界面54c的活动配置界面。
然后,可以指示用户从目标浏览器窗口36b内显示的网页中选择针对相应活动的目标。在一些实施例中,在步骤406-408的序列中,RPA代理31可以向RPA驱动程序25发信号以获取目标标识数据,并且可以从RPA驱动程序25接收相应的数据(关于目标获取的更多细节在下面给出)。这种数据传输发生在由桥接模块34建立的通信信道(例如,图6-B中的信道138a-138b)上。步骤414可以接收配置相应活动的各种其他参数的用户输入,例如写入图9所示的示例性表单中的目标输入字段60的内容等。当用户输入指示当前活动的配置完成时(步骤412返回是(YES)),步骤416确定当前工作流是否完成。如果为否,则RPA代理31可以返回到步骤402以接收用于配置其他RPA活动的用户输入。当用户输入指示当前工作流完成时,步骤418-420的序列可以制定指定相应机器人工作流的RPA脚本/包,并输出相应机器人规范。对于相应工作流的每个RPA活动,RPA脚本42和/或包40可以包括活动类型的指示符和表征相应活动的目标的目标标识数据集合。在一些实施例中,步骤420可以包括将RPA包40保存到计算机可读介质(例如,RPA主机20的本地硬盘驱动器)或将包40发送到远程服务器以分发给执行RPA机器人12和/或编排器14。
在备选实施例中,代替为整个机器人工作流制定RPA脚本或包40,RPA代理31可以为每个单独的RPA活动制定具有目标标识数据的规范,并且将相应的规范发送到远程服务器计算机,该远程服务器计算机然后可以根据从RPA代理31接收的各个活动数据组装描述整个所设计的工作流的RPA包40。
图13示出了在本发明的机器人设计实施例中由RPA驱动器25执行的示例性步骤序列。驱动程序25可以被配置为监听用户输入事件(步骤502-504),诸如指针的移动、鼠标点击、按键以及诸如轻敲、捏压等输入手势。响应于检测到输入事件,在步骤506中,驱动程序25可以根据该事件标识目标候选UI元素。在其中检测到的输入事件包括鼠标事件(例如,指针的移动)的一个示例中,步骤506可以标识位于指针的当前位置的目标网页的元素。在RPA主机20不在例如触摸屏设备上显示指针的另一示例中,步骤504可以检测屏幕触摸,并且步骤506可以标识位于触摸位置的目标网页的元素。
在一些实施例中,步骤508可以突出显示在步骤508中标识的目标候选元素。本文的突出显示表示更改相应目标候选元素的外观,以将其指示为针对当前RPA活动的潜在目标。图14示出了根据本发明的一些实施例的示例性突出显示。步骤508可以包括改变目标文档的规范(例如,HTML、DOM)以改变所标识的目标候选的外观(例如,字体、大小、颜色等),或者创建新的突出显示元素,诸如图14中所示的示例性突出显示74a-74b。示例性突出显示元素可以包括围绕目标候选的多边形框,该多边形框可以被着色、阴影、影线等,以使目标候选在目标网页的其他元素中脱颖而出。其他示例性突出显示元素可以包括文本元素、图标、箭头等。
在一些实施例中,标识目标候选会自动触发对锚元素的选择。可以根据目标候选的类型、位置、取向和大小等来选择锚。例如,一些实施例选择位于目标候选的直接附近的元素作为锚,优选地与目标候选对齐。步骤510(图13)可以应用本领域中已知的任何锚选择标准;这种标准和算法超出了本说明书的范围。在另一步骤512中,驱动器25可以通过如上所述改变其屏幕外观来突出显示所选目标元素。一些实施例对目标和锚元素使用不同的突出显示(例如,不同的颜色、不同的影线类型等),并且可以添加如图所示的说明性文本。在一些实施例中,多次重复步骤510-512以为每个目标候选选择多个锚。
在步骤514中,RPA驱动程序25可以确定表征候选目标和/或所选锚元素的目标标识数据。为了确定元素ID 62,一些实施例可以解析目标网页的实况DOM,提取和/或制定表征候选目标元素和/或锚元素的HTML标签和/或属性-值对集合。步骤514还可以包括拍摄当前示出候选目标和/或锚元素的屏幕区域的快照以确定图像数据(例如,图9-图10中的目标图像64)。可以通过解析源代码和/或通过OCR过程来提取由目标和/或锚元素显示的文本/标签。在步骤516中,驱动程序25可以将在步骤514中确定的目标标识数据发送到桥接模块34和/或RPA代理31。这样的通信经由桥接模块34建立的信道(例如,图6-B中的138a-138b)来执行。
图13中的示例性流程图假设RPA驱动程序25正在监听在其自己的浏览器窗口内发生的用户事件(例如,输入事件),作出其自己的决定,并自动将元素标识数据传输到桥接模块34和/或代理31。在备选实施例中,RPA代理31和/或桥接模块34可以通过经由信道38或138a-138b传输的命令或其他种类的通信主动地向RPA驱动程序25请求数据。同时,RPA驱动程序25可以仅执行相应的命令。例如,代理31可以请求驱动程序25获取目标,然后获取锚。这种请求可以例如在期望用户手动选择锚的实施例中发出,这与上面的描述形成对比,其中响应于候选目标的标识而自动选择锚。接着,驱动程序25可以仅在请求时返回元素标识数据。在其他备选实施例中,用于自动选择锚元素的算法可以由RPA代理31执行,而不是由如上所述的驱动程序25执行。例如,代理31可以向驱动程序25发送请求,以标识紧靠目标左侧的UI元素,并将相应元素分配为锚。技术人员将知道,这种变化是作为示例给出的,并不意味着缩小本发明的范围。
上面的描述指的是示例性实施例,其中桥接模块34充当RPA代理31和驱动程序25之间的通信的中介(例如,参见图6-B),并且其中模块34在桥接浏览器窗口36c内显示目标配置界面(例如,图10中的界面70)。在另一示例性实施例中,桥接模块34仅在驱动程序25和代理31之间建立直接通信信道(例如,如图6-A所示),而RPA代理31在代理浏览器窗口36a内显示目标配置界面。在这样的实施例中,RPA驱动程序25可以从代理31接收目标获取命令,并且可以将目标标识数据直接返回给代理31。
上面的描述还集中于机器人设计的一种版本,其中用户从可用于执行的活动集合中进行选择,然后通过指示目标和其他参数来继续配置每个单独的活动。其他示例性实施例可以实现另一种流行的机器人设计场景,其中机器人设计工具记录用户动作序列(诸如相应用户在复杂目标网站中的导航)并配置机器人以再现相应序列。在一些这样的实施例中,对于诸如点击、滚动、键入等的每个用户动作,驱动器25可以被配置为确定包括目标标识数据集合的相应动作的目标,并且经由通信信道38或138a-138b将相应数据与用户动作类型的指示符一起发送到RPA代理31。然后,RPA代理31可以根据从RPA驱动器25接收的相应数据来组装机器人规范。
机器人执行实施例
与上面所示的旨在设计RPA机器人以执行期望的工作流的示例性实施例相反,在本发明的其他实施例中,RPA代理31包括被配置为实际执行自动化的RPA机器人12的至少一部分。例如,RPA代理31可以实施机器人管理器24和/或机器人执行器22的一些功能(参见图2和上文相关联的描述)。
在一个示例性机器人执行实施例中,用户可以使用代理浏览器窗口36a来打开机器人规范。该规范可以指示机器人导航到目标网页并执行一些活动,诸如填写表格、抓取一些文本或图像等。例如,可以通过访问特定URL或从远程服务器计算机所展示的web界面中选择菜单项来从远程‘机器人商店’下载RPA包40。包40可以包括以计算机可读形式制定的RPA脚本42的集合,其使脚本42能够由浏览器进程执行。例如,脚本42可以在一个版本的中制定。脚本42可以包括RPA活动序列(例如,导航到网页、点击按钮等)的规范,包括表征每个RPA活动的目标/运算元(例如,点击哪个按钮、填写哪个表单字段等)的目标标识数据集合。
图15示出了在本发明的机器人执行实施例中由桥接模块34执行的示例性步骤序列。在步骤602中,模块34可以从RPA代理31接收目标网页的URL,RPA代理31接着可以将其作为RPA包40的一部分来接收。然后,步骤604-606的序列可以实例化目标浏览器窗口36b(例如,打开新的浏览器选项卡)并将目标网页加载到新实例化的窗口中。步骤604还可以包括启动单独的浏览器进程以在目标浏览器窗口36b内呈现目标网页。在备选实施例中,代理31可以指示用户打开目标浏览器窗口36b并导航到目标网页。
在步骤608-610的另一序列中,模块34可以将RPA驱动程序25注入目标网页/浏览器窗口36b,并在RPA代理31和驱动程序25之间建立通信信道(例如,参见图6-A中的信道38)。有关详细信息,请参阅上面关于图11的描述。
图16示出了在本发明的机器人执行实施例中由RPA代理31执行的示例性步骤序列。响应于在步骤702中接收到RPA包40,在步骤704中,代理31可以解析相应的规范以标识要执行的活动。然后,步骤706-708的序列可以循环通过相应工作流的所有活动。对于每个活动,步骤710可以经由信道38向RPA驱动器25发送执行命令,该命令包括活动类型的指示符,并且还包括表征相应活动的目标/运算元的目标标识数据。然后,一些实施例可以经由通信信道从RPA驱动程序25接收活动报告,其中该报告可以指示例如相应的活动是否成功,并且还可以包括执行相应活动的结果。在一些实施例中,步骤714可以根据接收到的活动报告来确定当前活动是否成功执行,如果为否,则步骤716可以在代理浏览器窗口36a内向用户显示警告。响应于完成自动化(例如,步骤706确定没有未完成的活动要执行),步骤716可以向用户显示执行相应工作流的成功消息和/或结果。在一些实施例中,进一步的步骤718可以将包括执行相应自动化的结果的状态报告发送到远程服务器(例如,编排器14)。所述结果可以包括例如从目标网页抓取的数据、由目标网页响应于成功地将数据输入到网页表单而显示的确认等。
图17示出了在本发明的机器人执行实施例中由RPA驱动器25执行的示例性步骤序列。驱动程序25可以被配置为通过通信信道38监听来自RPA代理的执行命令(步骤802-804)。响应于接收到命令,步骤806可以尝试根据从RPA代理31接收的目标标识数据来标识当前活动的目标。步骤806可以包括在目标网页中搜索匹配相应目标标识数据的元素。例如,RPA驱动程序25可以解析目标网页的实况DOM以标识其HTML标签和/或其他属性-值对匹配在元素ID 62中指定的那些的元素。在一些实施例中,当根据元素ID 62的标识失败时,RPA驱动程序25可以尝试根据图像和/或文本数据(例如,图9中的元素图像64和元素文本66)来寻找运行时目标。一些实施例还可以尝试根据表征锚元素的标识数据和/或根据运行时目标相对于锚的相对位置和对齐来标识运行时目标。这样的程序和算法超出了当前说明书的范围。
当目标标识成功时(步骤808返回是),步骤812可以执行当前RPA活动,例如点击所标识的按钮、填写所标识的表单字段等。步骤812可以包括操纵目标网页的源代码和/或生成输入事件(例如,点击、轻敲等),以再现人工操作员实际执行相应动作的结果。
当不能根据从RPA代理31接收的目标标识数据来标识当前活动的运行时目标时(例如,在目标网页在设计时和运行时之间已基本改变的情况下),一些实施例经由通信信道38向RPA代理31发送错误消息/报告。在备选实施例中,RPA驱动程序25可以搜索备选目标。在一个这样的示例中,驱动程序25可以标识与所提供的目标标识数据大致匹配的目标网页的元素。一些实施例标识部分匹配期望目标特性的多个目标候选,并计算每个候选和设计时目标之间的相似性度量。然后,可以通过根据所计算的相似性度量对目标候选进行排名来选择备选目标。响应于选择备选运行时目标,驱动程序25的一些实施例可以突出显示相应的UI元素,例如如上关于图14所描述的,并请求用户确认该选择。在又一示例性实施例中,驱动程序25可以显示指示不能找到运行时目标并指导用户手动选择备选目标的对话。然后,驱动器25可以等待用户输入。一旦用户选择了备选目标(例如,通过在UI元素上点击、轻敲等),RPA驱动程序25可以使用如上关于图13描述的方法来标识目标网页的源代码和/或DOM内的相应元素(步骤506)。当备选运行时目标可用时(步骤810返回是),驱动程序25可以将当前活动应用于备选目标(步骤812)。
当驱动程序25由于任何原因不能标识任何备选目标时,在一些实施例中,步骤814向RPA代理31返回活动报告,指示由于未能标识运行时目标而不能执行当前活动。在一些实施例中,活动报告还可以标识在目标网页的任何元素中都不匹配的目标标识数据的子集。这样的报告可以便于调试。当成功执行当前活动时,发送到RPA代理31的报告可以包括执行相应活动的结果。在备选实施例中,步骤814可以包括将活动报告和/或执行相应活动的结果发送到远程服务器计算机(例如,编排器14),而不是本地RPA代理。
图18示出了计算机系统80的示例性硬件配置,该计算机系统80可编程以执行本文描述的一些方法和算法。图示的配置是通用的,并且可以表示例如图4中的任何RPA主机20a-20e。技术人员将知道,某些设备(例如,移动电话、平板计算机、服务器计算机)的硬件配置可能与图18中所示的有所不同。
图示的计算机系统包括物理设备集合,包括硬件处理器82和存储单元84。处理器82包括物理器件(例如,微处理器、形成在半导体衬底上的多核集成电路等),其被配置为利用信号和/或数据集合执行计算和/或逻辑运算。在一些实施例中,这样的操作以处理器指令序列(例如,机器代码或其他类型的编码)的形式被递送到处理器82。存储单元84可以包括存储由处理器82访问或生成的指令和/或数据的易失性计算机可读介质(例如,DRAM、SRAM)。
输入设备86可以包括计算机键盘、鼠标和麦克风等,包括允许用户将数据和/或指令引入到相应计算机系统中的相应硬件接口和/或适配器。输出设备88可以包括诸如监控器的显示设备和扬声器等,以及诸如图形卡的硬件接口/适配器,从而允许图示计算设备向用户传送数据。在一些实施例中,与触摸屏设备的情况一样,输入设备86和输出设备88共享共同硬件。存储设备92包括实现软件指令和/或数据的非易失性存储、读取和写入的计算机可读介质。示例性存储设备92包括磁盘和光盘和闪存设备,以及诸如CD和/或DVD盘和驱动器的可移动介质。网络适配器94的集合与相关联的(多个)通信接口一起使图示计算机系统能够连接到计算机网络(例如,图4中的网络13)和/或其他设备/计算机系统。控制器中心90一般表示多个系统、外围设备和/或芯片组总线,和/或实现处理器82与设备84、86、88、92和94之间通信的所有其他电路。例如,控制器中心90可以包括存储器控制器、输入/输出(I/O)控制器和中断控制器等。在另一示例中,控制器中心90可以包括将处理器82连接到存储器84的北桥和/或将处理器82连接到设备86、88、92和94的南桥。
上述示例性系统和方法通过使RPA软件能够在几乎任何主机上执行,而与其硬件类型和操作系统无关,从而便于采用RPA技术。与通常作为单独的自含式软件应用分发的传统RPA软件不同,在本发明的一些实施例中,RPA软件包括在诸如Google等web浏览器内执行的脚本集合。所述脚本可以用诸如/>的脚本语言或浏览器能够解释的某些版本的字节码来制定。
尽管在传统的RPA中,必须为每个硬件平台(即,处理器系列)和/或每个操作系统(例如,Microsoft与/>)开发软件的单独版本,但是本发明的一些实施例允许在可以执行具有脚本解释功能的web浏览器的任何平台和操作系统上使用相同的脚本集合。在软件开发人员方面,移除构建和维护机器人设计应用的多个版本的需要可以极大地促进软件开发并缩短上市时间。客户端侧的优势包括无需购买、安装和升级多个版本的RPA软件,从而降低了管理成本,并进一步简化许可流程。个人RPA开发人员还可以从他们自己的计算机上设计、测试和运行自动化,而与操作系统无关。
然而,从浏览器内部执行RPA带来了巨大的技术挑战。RPA软件库可能相对较大,因此将它们插入到目标web文档中可能不切实际,有时可能会导致相应的浏览器进程崩溃或速度减慢。相反,本发明的一些实施例将RPA软件的功能分成几个部分,每个部分在单独的浏览器进程、窗口或选项卡内执行。例如,在机器人设计实施例中,设计界面可以在一个浏览器窗口/选项卡内执行,与显示以自动化为目标的网页的另一窗口/选项卡不同。然后,一些实施例仅将相对较小的软件组件(例如,如上所述的RPA驱动程序)注入目标网页,相应组件被配置为执行诸如标识UI元素和模仿诸如鼠标点击、手指轻敲等用户动作的基本任务。通过将大量RPA软件保持在目标文档之外,一些实施例改善了RPA软件的用户体验、稳定性和性能。
在单独的窗口/选项卡中具有不同的RPA组件的另一优势是增强了功能。由于现代浏览器通常出于计算机安全和隐私原因保持不同的窗口/选项卡彼此隔离,其中在目标网页内执行所有RPA软件的RPA系统可能只能访问相应窗口/选项卡的内容。在点击超链接触发在新窗口/选项卡内显示附加网页的示例性情况下,附加网页的内容因此可能是RPA软件的禁区。与这种RPA策略相比,本发明的一些实施例能够在多个窗口/选项卡中一次执行互连的RPA代码片段,从而消除了不便。在一个示例性实施例中,在目标网页内执行的RPA驱动程序检测超链接的激活,并将该事实传送给桥接模块。作为响应,桥接模块可以检测新浏览器窗口/选项卡的实例化,自动将RPA驱动程序的另一实例注入新打开的窗口/选项卡中,并在RPA驱动程序的新实例与在代理浏览器窗口内执行的RPA代理之间建立通信信道,从而实现跨多个窗口/选项卡的无缝自动化。
此外,RPA代理的单个实例可以管理多个窗口/选项卡的自动化。在机器人设计实施例中,RPA代理可以从在不同浏览器窗口/选项卡中操作的RPA驱动程序的多个实例收集目标标识数据,从而捕获用户在多个页面和超链接上的导航的细节。在机器人执行实施例中,RPA代理可以向RPA代理的每个实例发送特定于窗口的目标标识数据,从而使机器人能够再现与多个网页的复杂交互,例如从多个源抓取和组合数据。
同时,将不同的RPA组件保持在不同的窗口/选项卡中会带来额外的技术问题,因为这明确违反了浏览器的代码隔离政策。为了克服这些障碍,一些实施例在各种RPA组件之间建立通信信道以允许消息交换,例如目标标识数据和状态报告。一个示例性实施例使用浏览器扩展机制来建立这样的通信信道。
本领域技术人员将清楚的是,在不脱离本发明的范围的情况下,可以以多种方式改变上述实施例。因此,本发明的范围应由所附权利要求及其法律等同形式确定。
Claims (25)
1.一种方法,包括采用计算机系统的至少一个硬件处理器来执行第一web浏览器进程、第二web浏览器进程和桥接模块,其中:
所述桥接模块被配置为在所述第一web浏览器进程和所述第二web浏览器进程之间建立通信信道;
所述第一web浏览器进程执行机器人过程自动化RPA驱动程序,所述RPA驱动程序被配置为:
检测用户输入,所述用户输入指示在第一web浏览器窗口内被显示的目标网页的目标元素,以及
经由所述通信信道将表征所述目标元素的目标标识数据集合发送到所述第二web浏览器进程;并且
所述第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,所述机器人设计界面被配置为输出RPA机器人的规范,所述RPA机器人被配置为在所述目标元素上执行RPA活动。
2.根据权利要求1所述的方法,其中所述RPA驱动程序被配置为:根据指针在所述第一web浏览器窗口内的当前位置来标识所述目标网页的多个UI元素之中的所述目标元素。
3.根据权利要求1所述的方法,其中所述RPA驱动程序还被配置为:解析所述目标网页的文档对象模型DOM以确定所述目标标识数据集合。
4.根据权利要求1所述的方法,其中所述RPA驱动程序还被配置为:响应于检测到指示所述目标元素的所述用户输入,改变所述目标元素的外观以相对于所述目标网页的其他元素来突出显示所述元素。
5.根据权利要求5所述的方法,其中改变所述目标元素的所述外观包括围绕所述目标元素绘制边界。
6.根据权利要求5所述的方法,其中改变所述目标元素的所述外观包括在所述目标元素附近显示文本标签。
7.根据权利要求1所述的方法,其中所述RPA设计界面被配置为:接收从可用于由RPA机器人执行的多个RPA活动选择所述RPA活动的用户输入。
8.根据权利要求1所述的方法,其中所述桥接模块还被配置为:将所述RPA驱动程序注入所述目标网页中。
9.根据权利要求1所述的方法,其中所述桥接模块还被配置为:
检测新浏览器窗口的实例化;
作为响应,将所述RPA驱动程序的另一实例注入到在所述新浏览器窗口内被显示的文档中;以及
在所述第二web浏览器进程与显示所述文档的另一web浏览器进程之间建立另一通信信道。
10.根据权利要求9所述的方法,其中所述RPA驱动程序的所述另一实例被配置为:
检测用户输入,所述用户输入指示所述文档的元素;以及
经由所述另一通信信道将表征所述文档的所述元素的另一目标标识数据集合发送到所述第二web浏览器进程。
11.根据权利要求1所述的方法,其中所述桥接模块还被配置为:从所述RPA驱动程序接收所述目标标识数据集合,并且在不同于所述第一web浏览器窗口和所述第二web浏览器窗口的第三web浏览器窗口内显示所述目标标识数据的至少一部分。
12.根据权利要求1所述的方法,其中所述第一web浏览器窗口和所述第二web浏览器窗口包括不同的浏览器选项卡。
13.一种计算机系统,包括被配置为执行第一web浏览器进程、第二web浏览器进程和桥接模块的至少一个硬件处理器,其中:
所述桥接模块被配置为在所述第一web浏览器进程和所述第二web浏览器进程之间建立通信信道;
所述第一web浏览器进程执行RPA驱动程序,所述RPA驱动程序被配置为:
检测用户输入,所述用户输入指示在第一web浏览器窗口内被显示的目标网页的目标元素,以及
经由所述通信信道将表征所述目标元素的目标标识数据集合发送到所述第二web浏览器进程;并且
所述第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,所述机器人设计界面被配置为输出RPA机器人的规范,所述RPA机器人被配置为在所述目标元素上执行RPA活动。
14.根据权利要求13所述的计算机系统,其中所述RPA驱动程序被配置为:根据指针在所述第一web浏览器窗口内的当前位置来标识所述目标网页的多个UI元素之中的所述目标元素。
15.根据权利要求13所述的计算机系统,其中所述RPA驱动程序还被配置为:解析所述目标网页的文档对象模型DOM以确定所述目标标识数据集合。
16.根据权利要求13所述的计算机系统,其中所述RPA驱动程序还被配置为:响应于检测到指示所述目标元素的所述用户输入,改变所述目标元素的外观以相对于所述目标网页的其他元素来突出显示所述元素。
17.根据权利要求17所述的计算机系统,其中改变所述目标元素的所述外观包括围绕所述目标元素绘制边界。
18.根据权利要求17所述的计算机系统,其中改变所述目标元素的所述外观包括在所述目标元素附近显示文本标签。
19.根据权利要求13所述的计算机系统,其中所述RPA设计界面被配置为:接收从可用于由RPA机器人执行的多个RPA活动选择所述RPA活动的用户输入。
20.根据权利要求13所述的计算机系统,其中所述桥接模块还被配置为:将所述RPA驱动程序注入所述目标网页中。
21.根据权利要求13所述的计算机系统,其中所述桥接模块还被配置为:
检测新浏览器窗口的实例化;
作为响应,将所述RPA驱动程序的另一实例注入到当前在所述新浏览器窗口内被显示的文档中;以及
在所述第二web浏览器进程与显示所述文档的另一web浏览器进程之间建立另一通信信道。
22.根据权利要求21所述的计算机系统,其中所述RPA驱动程序的所述另一实例被配置为:
检测用户输入,所述用户输入指示所述文档的元素;以及
经由所述另一通信信道将表征所述文档的所述元素的另一目标标识数据集合发送到所述第二web浏览器进程。
23.根据权利要求13所述的计算机系统,其中所述桥接模块还被配置为:从所述RPA驱动程序接收所述目标标识数据集合,并且在不同于所述第一web浏览器窗口和所述第二web浏览器窗口的第三web浏览器窗口内显示所述目标标识数据的至少一部分。
24.根据权利要求13所述的计算机系统,其中所述第一web浏览器窗口和所述第二web浏览器窗口包括不同的浏览器选项卡。
25.一种非瞬态计算机可读介质,存储指令,所述指令在由计算机系统的至少一个硬件处理器执行时,使所述计算机系统形成桥接模块,所述桥接模块被配置为在第一web浏览器进程和第二web浏览器进程之间建立通信信道,所述第一web浏览器进程和所述第二web浏览器进程在所述计算机系统上执行,其中:
所述第一web浏览器进程执行RPA驱动程序,所述RPA驱动程序被配置为:
检测用户输入,所述用户输入指示在第一web浏览器窗口内被显示的目标网页的目标元素,以及
经由所述通信信道将表征所述目标元素的目标标识数据集合发送到所述第二web浏览器进程;并且
所述第二web浏览器进程在第二web浏览器窗口内展示机器人设计界面,所述机器人设计界面被配置为输出RPA机器人的规范,所述RPA机器人被配置为在所述目标元素上执行RPA活动。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/648,713 US20230236712A1 (en) | 2022-01-24 | 2022-01-24 | Browser-Based Robotic Process Automation (RPA) Robot Design Interface |
US17/648,713 | 2022-01-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483487A true CN116483487A (zh) | 2023-07-25 |
Family
ID=87210796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310042926.6A Pending CN116483487A (zh) | 2022-01-24 | 2023-01-28 | 基于浏览器的机器人过程自动化机器人设计界面 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20230236712A1 (zh) |
JP (1) | JP2023107749A (zh) |
CN (1) | CN116483487A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12056034B2 (en) * | 2022-01-07 | 2024-08-06 | Jpmorgan Chase Bank, N.A. | System and method for automatically monitoring performance of software robots |
US12147881B2 (en) * | 2022-05-17 | 2024-11-19 | UiPath, Inc. | Target-based schema identification and semantic mapping for robotic process automation |
JP2023176618A (ja) * | 2022-05-31 | 2023-12-13 | コニカミノルタ株式会社 | Rpaスクリプトデータの作成方法、rpaスクリプトデータの実行方法、端末装置、画像処理装置、rpaスクリプトデータ、プログラム |
US20240144558A1 (en) * | 2022-10-27 | 2024-05-02 | Capital One Services, Llc | Generating video streams to depict bot performance during an automation run |
US12271291B1 (en) * | 2022-12-02 | 2025-04-08 | Wells Fargo Bank, N.A. | Test coverage for workflows |
US11995146B1 (en) * | 2023-08-22 | 2024-05-28 | Nice Ltd. | System and method for displaying real-time code of embedded code in a browser-window of a software application |
US20250080537A1 (en) * | 2023-09-04 | 2025-03-06 | Zscaler, Inc. | Systems and methods for pause and resume functionality for shared Privileged Remote Access (PRA) sessions |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009143152A1 (en) * | 2008-05-19 | 2009-11-26 | Citrix Systems, Inc. | Systems and methods for automatically testing an application |
US20110093801A1 (en) * | 2008-06-30 | 2011-04-21 | Kazuya Koyama | Application extension system, extension method, extension program |
US20120124495A1 (en) * | 2009-11-23 | 2012-05-17 | Nitsan Amichai | System and method for object relationship identification in a user interface |
CN102207857B (zh) * | 2010-03-29 | 2014-08-27 | 日电(中国)有限公司 | Gui元素识别方法、装置及系统 |
US8407321B2 (en) * | 2010-04-21 | 2013-03-26 | Microsoft Corporation | Capturing web-based scenarios |
US9021371B2 (en) * | 2012-04-20 | 2015-04-28 | Logitech Europe S.A. | Customizing a user interface having a plurality of top-level icons based on a change in context |
US10534512B2 (en) * | 2015-03-04 | 2020-01-14 | Tata Consultancy Services Limited | System and method for identifying web elements present on a web-page |
US10402463B2 (en) * | 2015-03-17 | 2019-09-03 | Vm-Robot, Inc. | Web browsing robot system and method |
EP3314440A4 (en) * | 2015-06-26 | 2019-03-20 | Intel Corporation | TECHNOLOGIES FOR DEVICE INDEPENDENT AUTOMATED APPLICATION TESTS |
US10528327B2 (en) * | 2015-11-23 | 2020-01-07 | Microsoft Technology Licensing Llc | Workflow development system with ease-of-use features |
US10324828B2 (en) * | 2016-03-28 | 2019-06-18 | Dropbox, Inc. | Generating annotated screenshots based on automated tests |
US10331416B2 (en) * | 2016-04-28 | 2019-06-25 | Microsoft Technology Licensing, Llc | Application with embedded workflow designer |
US10409712B2 (en) * | 2016-12-30 | 2019-09-10 | Accenture Global Solutions Limited | Device based visual test automation |
US20190303269A1 (en) * | 2018-03-28 | 2019-10-03 | Layout.io Ltd | Methods and systems for testing visual aspects of a web page |
US10901879B2 (en) * | 2018-05-02 | 2021-01-26 | TestCraft Technologies LTD. | Method and apparatus for automatic testing of web pages |
US10963624B2 (en) * | 2018-05-02 | 2021-03-30 | Citrix Systems, Inc. | Web UI automation maintenance tool |
EP3608855A1 (en) * | 2018-08-08 | 2020-02-12 | Atos Syntel, Inc. | Workflow analyzer system and methods |
US10474564B1 (en) * | 2019-01-25 | 2019-11-12 | Softesis Inc. | Identifying user interface elements using element signatures |
US10949225B2 (en) * | 2019-02-06 | 2021-03-16 | Sap Se | Automatic detection of user interface elements |
US10656955B1 (en) * | 2019-05-15 | 2020-05-19 | Capital One Services, Llc | Modifying readable and focusable elements on a page during execution of automated scripts |
US11487973B2 (en) * | 2019-07-19 | 2022-11-01 | UiPath, Inc. | Retraining a computer vision model for robotic process automation |
US11488149B2 (en) * | 2019-08-08 | 2022-11-01 | Capital One Services, Llc | Management of credentials and authorizations for transactions |
US10885423B1 (en) * | 2019-10-14 | 2021-01-05 | UiPath Inc. | Systems and methods of activity target selection for robotic process automation |
US11474931B2 (en) * | 2020-09-14 | 2022-10-18 | Sap Se | Debugging a cross-technology and cross-environment execution |
US11543930B2 (en) * | 2020-11-10 | 2023-01-03 | RealFar Ltd | Augmenting web applications with optimized workflows supporting user interaction |
US20220214931A1 (en) * | 2021-01-07 | 2022-07-07 | Oracle International Corporation | System and method for exposing features of integration platform adapters as first-class actions in an orchestration template |
US12106077B2 (en) * | 2021-04-14 | 2024-10-01 | Salesforce, Inc. | Process flow builder for extensible web component sequences |
US12138795B2 (en) * | 2021-12-27 | 2024-11-12 | Nice Ltd | Analytics to increase performance of robotic process automation solutions |
-
2022
- 2022-01-24 US US17/648,713 patent/US20230236712A1/en not_active Abandoned
- 2022-01-24 US US17/648,717 patent/US20230236910A1/en active Pending
-
2023
- 2023-01-20 JP JP2023006943A patent/JP2023107749A/ja active Pending
- 2023-01-28 CN CN202310042926.6A patent/CN116483487A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230236910A1 (en) | 2023-07-27 |
JP2023107749A (ja) | 2023-08-03 |
US20230236712A1 (en) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593599B2 (en) | Long running workflows for document processing using robotic process automation | |
US11947443B2 (en) | Robotic process automation (RPA) debugging systems and methods | |
US20230236910A1 (en) | Systems and Methods for Executing Robotic Process Automation (RPA) Within a Web Browser | |
CN116057504B (zh) | 创建机器人流程自动化的用户界面的计算机程序产品及方法 | |
US12101373B2 (en) | Systems and methods for using a browser to design robotic process automation (RPA) robots | |
US20030081003A1 (en) | System and method to facilitate analysis and removal of errors from an application | |
US11886895B2 (en) | Enhanced target selection for robotic process automation | |
US20190213191A1 (en) | Managing sharable cell-based analytical notebooks | |
US11941419B2 (en) | Systems and methods for robotic process automation of mobile platforms | |
US12106144B2 (en) | Systems and methods for dynamically binding robotic process automation (RPA) robots to resources | |
US11513499B2 (en) | Web based viewing of robotic process automation (RPA) packages and workflows | |
JP2025016423A (ja) | ロボットによるフォーム入力アクティビティを最適化するためのシステムおよび方法 | |
EP4086755B1 (en) | Robotic process automation (rpa) comprising automatic document scrolling | |
US20250026022A1 (en) | Systems and Methods of Providing Alternative Robotic Form-Filling Activities | |
US20240255920A1 (en) | Selective Invocation of RPA Workflows Via API Calls |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20230725 |