CN109117215A - 自学习机器人过程自动化 - Google Patents

自学习机器人过程自动化 Download PDF

Info

Publication number
CN109117215A
CN109117215A CN201810642081.3A CN201810642081A CN109117215A CN 109117215 A CN109117215 A CN 109117215A CN 201810642081 A CN201810642081 A CN 201810642081A CN 109117215 A CN109117215 A CN 109117215A
Authority
CN
China
Prior art keywords
order
script
mistake
calculating equipment
execution
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.)
Granted
Application number
CN201810642081.3A
Other languages
English (en)
Other versions
CN109117215B (zh
Inventor
S·哈尔
V·希奥普
J·范登赫维尔
A·嘉克奎特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Accenture Global Solutions Ltd
Original Assignee
Accenture Global Solutions Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Accenture Global Solutions Ltd filed Critical Accenture Global Solutions Ltd
Publication of CN109117215A publication Critical patent/CN109117215A/zh
Application granted granted Critical
Publication of CN109117215B publication Critical patent/CN109117215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)

Abstract

公开了用于自学习机器人过程自动化的方法、***和装置,包括编码在计算机存储介质上的计算机程序。在一方面,方法包括接收包括一个或多个命令的并且被配置为与出现在用户界面上的图形元素进行交互的自动化脚本。方法还包括执行自动化脚本的一个或多个命令中的命令。方法还包括确定在自动化脚本的一个或多个命令中的命令的执行期间发生错误。方法还包括通过应用脚本修复模型来确定针对命令的修改。方法还包括执行修改的命令。方法还包括确定在修改的命令的执行期间是否发生所述错误或另一错误。所述方法还包括确定是否用修改的命令来更新自动化脚本。

Description

自学习机器人过程自动化
技术领域
本申请一般涉及机器学习。
背景技术
在计算机上执行的手动过程可能是重复且耗时的。例如,用户可以发送电子邮件来响应网页表单提交,并且对于每个网页表单提交,可能需要手动地与计算机交互,以点击按钮来打开用于撰写新电子邮件的窗口,点击按钮将来自网页表单提交中的信息复制到窗口中,点击按键为电子邮件正文写入文本,然后点击按钮来发送电子邮件。
发明内容
前端脚本通常与***的用户界面进行交互。例如,前端脚本可以使用计算机视觉技术定位屏幕上的图标。前端脚本可以选择所述图标来初始化相应的应用或打开相应的文档。相反,后端脚本使用特定应用的可执行文件的路径来指示计算***打开该应用。前端脚本可能更适合,因为它比后端脚本提供更多的灵活性。几乎每个与用户交互的***都有一个前端。虽然几乎每个***也都有一个后端,但某些***可能不允许其他***与后端交互以启动应用和打开文件。
前端脚本可能更容易出错。错误可能是由用户界面的意外变动引起的。在生成脚本期间,***可以捕获用户点击或触摸用户界面的、用户界面的一部分的屏幕截图。所捕获的部分的尺寸可以是固定的尺寸。在脚本执行期间,***可以扫描用户界面以定位与捕获的部分相匹配的屏幕区域。如果屏幕上出现弹出窗口,则***可能无法找到与捕获的部分相匹配的屏幕区域。在这种情况下,***可以将脚本修复模型应用于所述错误。***可能以前已经使用用户交互、其他脚本以及来自这些其他脚本的结果训练了脚本修复模型。脚本修复模型分析错误和屏幕,并识别弹出窗口的关闭按钮或弹出窗口的取消按钮。脚本修复模型可以指示***选择关闭按钮。
***可以重复扫描用户界面以定位与捕获部分相匹配的屏幕区域。在弹出窗口关闭的情况下,***可以成功地定位与捕获部分相匹配的区域。***可以更新脚本以包括动作,用以在定位所述捕获部分时发生错误的情况下定位弹出窗口的关闭按钮。该动作可以是***在其检测到弹出窗口时执行的可选动作。在一些实施中,***也可能会更新其他脚本。例如,***可以更新扫描用户界面的其他脚本并定位与捕获部分类似的屏幕区域。***可能会为这些其他脚本添加类似的可选步骤。
根据本申请中描述的技术方案的创新方面,用于自学习机器人过程自动化的方法包括以下动作:由计算设备接收包括一个或多个命令的并且被配置为与出现在用户界面上的图形元素交互的自动化脚本;由所述计算设备执行所述自动化脚本的所述一个或多个命令中的命令;由所述计算设备确定在执行所述自动化脚本的所述一个或多个命令中的所述命令期间发生错误;响应于确定在执行所述命令期间发生错误,由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改,所述脚本修复模型使用一个或多个自动化脚本来训练,所述自动化脚本各自包括命令以及对应于每个命令的结果;由所述计算设备执行经修改的命令;由所述计算设备确定在执行经修改的命令期间是否发生所述错误或另一错误发生;以及基于确定在执行经修改的命令期间是否发生所述错误或另一错误,确定是否用经修改的命令更新所述自动化脚本。
这些和其他实施可以各自可选地包括以下特征中的一个或多个。由计算设备确定在执行修改的命令期间是否发生所述错误或另一错误的动作包括:确定在执行修改的命令期间发生所述错误或另一错误。确定是否使用修改的命令来更新自动化脚本的动作包括:确定不使用修改的命令来更新自动化脚本。所述动作还包括:基于将脚本修复模型应用于所述命令,由计算设备确定针对所述命令的附加修改。所述动作还包括:基于确定在执行修改的命令期间发生所述错误或另一错误,使用指示在执行修改的命令期间发生所述错误或另一错误的数据来更新脚本修复模型。由计算设备确定在执行修改的命令期间是否发生所述错误或另一错误的动作包括确定在修改的命令的执行期间没有发生所述错误或另一错误。
确定是否使用修改的命令更新自动化脚本的动作包括确定使用修改的命令更新自动化脚本。所述动作还包括:确定在执行修改的命令期间没有发生所述错误或另一错误,使用指示在执行修改的命令期间没有发生所述错误或另一错误的数据来更新脚本修复模型。所述动作还包括:识别包括与自动化脚本的命令类似的另一个命令的另一个自动化脚本;并用修改的命令更新所述另一个自动化脚本的另一个命令。执行自动化脚本的一个或多个命令中的所述命令的动作包括:使用计算机视觉分析用户界面的屏幕截图;基于分析所述用户界面的屏幕截图,在所述用户界面中识别所述屏幕的可能与由所述自动化脚本指定的图形元素相匹配的区域;以及由计算设备选择与由自动化脚本指定的图形元素相匹配的屏幕区域。
确定针对命令的修改的动作包括调整可能与由自动化脚本指定的图形元素相匹配的屏幕区域的尺寸。由计算设备通过将使用一个或多个自动化脚本(所述一个或多个自动化脚本各自包括对应于每个命令的命令和结果)训练的脚本修复模型应用到所述命令来确定针对所述命令的修改的动作包括:通过脚本修复模型对在执行自动化脚本的一个或多个命令中的命令期间发生的错误进行分类;以及基于对所述错误的分类,通过将脚本修复模型应用于所述命令来确定针对命令的修改。由计算设备执行修改的命令的动作包括由计算设备模拟修改的命令。由计算设备确定在执行修改的命令期间是否发生所述错误或另一错误的动作包括确定在模拟修改的命令期间是否发生所述错误或另一错误。
由计算设备通过将使用一个或多个自动化脚本所述一个或多个自动化脚本各自包括对应于每个命令的命令和结果)训练的脚本修复模型应用于所述命令来确定针对命令的修改的动作包括:针对一个或多个候选修改中的每一个,通过将脚本修复模型应用于所述命令,确定反映将相应的候选修改应用于所述命令将校正错误的可能性的修复置信度分数;并且基于修复置信度分数,从一个或多个候选修改中选择针对所述命令的修改。确定是否使用修改的命令来更新自动化脚本的动作包括使用机器学习来确定是否使用修改的命令更新自动化脚本。
该方面的其他实现包括相应的***、装置以及记录在计算机存储设备上的计算机程序,它们中的每一个被配置为执行所述方法的操作。
本说明书中描述的技术方案的特定实现可以被实行以便实现以下优点中的一个或多个。***可以执行并校正自动化的前端脚本。当在一个脚本中检测到错误并校正错误时,所述***可以通过更新其他脚本来节省计算资源。在纠正错误之前,所述***不需要遇到错误。
在本说明书中描述的技术方案的一个或多个实现的细节在附图和下面的描述中阐述。技术方案的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
图1A和图1B示出了在捕获、执行和修改自动化脚本期间***的示例图形界面。
图2示出了用于捕获、执行和修改自动化脚本的示例***。
图3示出了用于捕获、执行和修改自动化脚本的示例过程。
图4示出了计算设备和移动计算设备的示例。
在各个附图中相似的参考编号和名称表示相似的元件。
具体实施方式
图1A和图1B示出了在捕获、执行和修改自动化脚本期间***100的示例图形界面100a、100b、100c和100d。简而言之,并且如下面更详细描述的那样,图形界面100a、图形界面100a示出了***100捕捉脚本的命令。图形界面100b示出了对图形界面100b的变动。图形界面100c示出了***100执行和检测脚本中的错误。图形界面100d示出了***100通过应用脚本修复模型并修剪在生成脚本期间捕获的图像来修改和更新脚本以纠正错误。
在图1A所示的例子中,图形界面100a表示***100向用户呈现的视图。图形界面100a可以包括用户可与其交互并选择以执行各种动作的图标和菜单。例如,用户可以选择图标102a来启动应用以找到餐馆。图标102a可以包括将图标102a描述为餐馆发现器图标的标签104a。用户可以选择图标106a来启动应用以找到公园。图标106a可以包括将图标106a描述为公园发现器图标的标签108a。用户可以选择图标110a来启动应用以查看火车时刻表。图标110a可以包括将图标110a描述为火车时刻表图标的标签112a。
图形界面100a还可以包括菜单按钮114a。用户可以选择菜单按钮114a来显示菜单116a。菜单116a可以包括用户可与其交互并且选择以执行附加动作的附加图标。例如,用户可以选择图标118a来启动显示自行车地图的应用。图标118a可以包括将图标118a描述为自行车地图图标的标签120a。用户可以选择图标122a来启动应用以显示用户的联系人。图标122a可以包括将图标122a描述为联系人图标的标签124a。用户可以选择图标126a来启动邮件应用。图标126a可以包括将图标描述为邮件图标的标签128a。用户界面100a还可以包括日期和时间信息136a和托盘图标138a。
用户可以通过与图形界面100a交互来生成脚本。所述交互可以包括点击鼠标上的按钮,触摸显示器,在键盘上键入,提供语音输入,或通过任何其他类似的输入设备提供输入。***100基于用户在何处以及如何与图形界面100a交互来存储与脚本有关的数据。用户可以生成包括用户可以使用图形界面100a执行的任何动作或动作系列的脚本。
在用户界面100a中示出的示例中,用户可以创建用于从联系人应用中选择和发送联系人的脚本。该脚本的动作中的一个动作可能涉及选择图标122a。在***100a记录并生成脚本的情况下,用户最初可以通过将鼠标指针130a悬停在按钮114a上并点击鼠标来选择菜单按钮114a。***100可以记录反映用户与菜单按钮114a的交互的数据。
在菜单116a打开的情况下,用户可以选择联系人图标122a。用户可以将鼠标指针130a悬停在图标122a上并点击鼠标。在一些实现中,在用户界面100a出现在触摸屏上的情况下,用户可以用用户的手指轻敲图标122a。鼠标的点击或手指的敲击可触发***100记录相应的动作。记录的数据可以包括当用户点击鼠标时鼠标指针130a的屏幕坐标。记录的数据还可以包括当用户点击鼠标时围绕鼠标指针130a的区域132a的屏幕截图。
捕获区域132a可以是鼠标指针130a周围的固定区域。捕获区域132a的尺寸可以对应于用户通常选择的图标。在这种情况下,捕获区域132a的尺寸可以与图标102a、106a和110a的尺寸相匹配。捕获区域132a的尺寸可以跨使用与***100相同的操作***的其他***一致。其他操作***可以具有与图标102a、106a和110a不同的尺寸的主图标。在一些实现中,捕获区域132a的尺寸可以由用户来定义。例如,用户可以为任何捕获的区域选择尺寸。作为另一个示例,每次用户点击鼠标或轻敲屏幕时,用户可以选择捕获区域132a的尺寸。
在一些实现中,当用户点击鼠标时,捕获区域132a的尺寸可以取决于鼠标指针130a的位置。例如,如果鼠标指针130a在菜单116a的内部,则捕获区域132a的尺寸可以与图标118a、122a和126a相似。如果鼠标指针130a位于菜单116a的外部,则所捕获的区域的尺寸可以与图标102a、106a和110a相似。
在图1A所示的例子中,捕获区域132a是恒定的形状。***100将图像134a和对图像134a的选择记录为脚本中的动作。在一些实现中,当用户选择图像134a的区域时,***100可以存储鼠标指针130a的坐标。当用户与用户界面100a交互时,***100可以记录附加动作。***100可以将图像134a、与图像134a相关的数据以及其他图像和相应信息存储为脚本。
在图1A所示的例子中,图形界面100b代表***100向用户呈现的另一视图。图形界面100b可以包括与图形界面100b相似的特征和图标。例如,图标102b、106b和110b可以类似于图形界面100a的图标102a、106a和110a。图标118b、122b和126b可以类似于图形界面100a的图标118a、122a和126a。图形界面100b可以包括用户可以选择以显示菜单116b的按钮114b,并且可以包括日期和时间信息136b和托盘图标138b。
图形界面100b包括对图形界面100a的变动。在这种情况下,用户可能已经在***100上安装了用于显示公交时刻表的应用的附加软件。图形界面100b包括用户可以选择以启动显示公交时刻表的新应用的图标121b。图标121b可以与指定图标121b用于公交时刻表应用的标签123b相邻。
如图形界面100b所示,***100将公交时刻表图标121b放置在联系人图标122b上方并且在自行车地图图标118b下方。在一些实现中,用户可以选择公交时刻表图标121b的位置。例如,用户可以将公交时刻表图标121b移动到火车时刻表图标110b的旁边。
在图形界面100b中包括新图标121b可能不会影响存储的脚本的命令。该脚本可能仍然包括与图像134b相关的命令。图像134b包括当用户在生成脚本期间点击鼠标时围绕鼠标指针的区域的屏幕截图。包括新图标121b可能不改变图像134b。
在图1B所示的例子中,图形界面100c表示在执行存储的脚本期间***100向用户呈现的另一视图。图形界面100c可以包括与图形界面100a和100b相似的特征和图标。例如,图标102c、106c和110c可以类似于图形界面100a的图标102a、106a和110a。图标118c、122c和126c可以类似于图形界面100a的图标118a、122a和126a。图形界面100c可以包括用户可以选择以显示菜单116c的按钮114c,并且可以包括日期和时间信息136c和托盘图标138c。
用户指示***100执行存储的脚本用于从联系人应用中选择和发送联系人。在执行与选择联系人图标122c相关的动作之前,***100可以执行脚本的一个或多个动作。例如,脚本可以选择按钮114c来显示菜单116c。在执行与选择联系人图标122c相关的动作时,***可以分析图形界面100c的屏幕截图并且尝试定位与生成脚本时***捕获的图像134c相匹配的屏幕截图的一部分。
***100可以在图形界面100c的屏幕截图上执行计算机视觉以定位与图像134c相匹配的屏幕的一部分。在一些实现中,***100可以扫描用户点击鼠标的位置附近的屏幕截图的区域。例如,***100可以扫描围绕图标122c的、鼠标点击位置的二百个像素内的区域。
在分析屏幕截图以获得与图像134c相匹配的屏幕的一部分,***100可以生成反映屏幕的不同部分对应于图像134c的可能性的图像置信度分数。例如,***100可以分析包括图标110c的屏幕的区域。在这种情况下,***100可以生成图像置信度分数0.1。***100可以分析图形界面100c的屏幕截图的区域133c。区域133c可以包括与图像134c相似的一些特征,例如图标122c,但是也包括新的公交时刻表图标121c的部分。该***可以生成图像置信度分数0.7。如果图像置信度分数满足阈值,则***100可以确定屏幕的一部分与图像134c匹配。例如,如果阈值为0.8,则区域133c或包括图标110c的屏幕的区域都不具有大于阈值0.8的图像置信度分数。***100可以确定图像134c不在图形界面100c上。
***100在执行脚本期间生成异常135c。***100可以在图形界面100c上显示异常135c,或者可以向用户提供***100在执行脚本时遇到错误的另一类型的指示(例如,音频指示)。在一些实现中,区域133c的轮廓未出现在图形界面100c上。相反,***100将区域133c与图像135c进行比较,而不勾勒出区域133c的轮廓。
在图1B所示的例子中,图形界面100d表示在修改所存储的脚本期间由***100向用户呈现的另一视图。图形界面100d可以包括与图形界面100a、100b和100c相似的特征和图标。例如,图标102d、106d和110d可以类似于图形界面100a的图标102a、106a和110a。图标118d、121d、122d和126c可以类似于图形界面100a和100b的图标118a、121b、122a和126a。图形界面100d可以包括用户可以选择以显示菜单116d的按钮114d,并且可以包括日期和时间信息136d和托盘图标138d。
***100基于不能识别与图像134c相匹配的图形界面100c的一部分而在脚本中检测到错误。***100尝试通过访问脚本修复模型来纠正错误。脚本修复模型可以被训练以建议对脚本进行校正以修复错误。脚本修复模型可以使用神经网络和机器学习来推荐校正。脚本修复模型可以使用修复其他脚本的校正和未修复其他脚本的尝试校正来进行训练。训练数据可以包括与每个校正和尝试校正的结果相关的数据。在一些实现中,训练数据可以包括与脚本动作相关的数据以及针对正常工作并且没有产生错误的那些动作的结果。
***100将脚本修复模型应用于与错误相关的数据。与错误相关的数据可以包括图像134c,具有最高图像置信度分数的图形界面100c的一部分(例如,区域133c),当***捕获图像134c时鼠标指针的坐标以及图形界面100c的具有最高图像置信度分数的部分的坐标。脚本修复模型可以生成一个或多个候选修改来修复错误。脚本修复模型可以为每个候选修改生成修复置信度分数。修复置信度分数可以反映候选修改将校正错误的可能性。
在图形界面100d所示的示例中,***100可以使用脚本修复模型来确定裁剪图像134c。***100可裁剪图像134c以生成裁剪后的图像139d。脚本修复模型可以通过分析原始鼠标点击的位置以及在原始鼠标点击附近的区域中成功匹配的图像的大小,确定裁剪后图像139d的尺寸。***100可以执行计算机视觉技术来识别位于图像134c中的并且是成功匹配的图像的尺寸的整个图标。
***100针对裁剪后图像139d分析图形界面100d。***100将图像部分137d识别为裁剪后图像139d的匹配。***100继续使用该脚本并选择图像部分137d。通过选择图像部分137d,***100打开联系人应用并继续执行脚本的动作。
图2示出了用于捕获、执行和修改自动化脚本的示例***200。简而言之,并且如下面更详细描述的,***200基于用户与图形界面的交互来捕获脚本。***200存储脚本并通过执行用户在脚本捕获期间执行的动作来执行存储的脚本。***200可能在执行脚本期间产生错误。***200将脚本修复模型应用于错误和脚本以识别修复脚本的修改。该***可以使用一个或多个计算设备来实现。
在图2所示的例子中,***200包括用户界面205。用户界面205可以包括显示器以向用户提供视觉输出。用户可以与用户界面205交互。例如,在显示器是触敏显示器的情况下,用户可以触摸显示器。用户可以在用户界面205周围移动鼠标并且点击鼠标以向***200提供输入。在图1A和1B中,用图形界面100a、100b、100c和100d示出了用户界面的示例。
***200包括过程管理器210。过程管理器210跟踪当前在***上运行的过程。在一些实现中,过程管理器210可以包括允许其他软件模块查询过程管理器210的接口。例如,接口可以是API。所述其他软件模块可以接收当前在***200上运行的过程的列表,每个过程已经运行了多长时间,每个过程正在使用多大处理能力以及每个过程正在使用多少存储器。
***200包括脚本生成器215。脚本生成器215可以被配置为监测用户界面205和过程管理器210以识别在记录脚本期间由用户执行的动作。脚本生成器215还可以被配置为监测诸如鼠标、触摸屏、键盘或其他输入设备的输入设备。在一些实现中,脚本生成器215可以被配置为仅监测输入设备和用户界面205。在这种情况下,脚本生成器215可能无法访问过程管理器210。
用户向脚本生成器215提供指令以开始记录并生成脚本。脚本生成器215可以开始监测用户界面205和过程管理器210。脚本生成器215可以记录由用户提供的输入,***200上运行的过程以及在用户界面205上显示的图形。例如,脚本生成器215可以记录用户在屏幕上的特定位置点击鼠标。脚本生成器215可以记录鼠标被点击时的坐标,在鼠标点击期间用户界面205的屏幕截图,鼠标点击的时序(例如时间戳),在鼠标点击之后运行的过程以及任何其他类似的信息。脚本生成器215可以在每个输入事件期间记录类似的信息。输入事件可以包括鼠标点击、触摸屏按压、键盘按压或其他类似事件。
脚本生成器215可以将脚本存储在脚本存储器220中。所述脚本可能基于记录的数据。针对鼠标点击动作的示例,存储的动作可以包括鼠标坐标、鼠标点击周围的屏幕区域、自上次动作以来经过的时间以及任何可能由鼠标点击启动的过程。针对诸如键盘事件之类的事件的后续动作可以包括在键盘上按下的键、自从鼠标点击动作以来经过的时间以及可能由键盘按压启动的任何过程。针对键盘事件,脚本生成器215还可以将键盘按压之前和键盘按压之后的屏幕的屏幕截图进行比较。脚本生成器215可能能够通过识别用户界面205中的变动的位置来确定光标的位置。在这种情况下,脚本生成器215可以存储光标所在的以及用户可能输入文本的屏幕区域的屏幕截图。
脚本执行模块225可以访问脚本存储器220以检索用于执行的脚本。脚本执行模块225可以接收来自用户的输入以检索并执行特定的脚本。例如,用户可以请求***200执行与更新用户的联系人有关的脚本。用户可以命名脚本并可以通过名称请求特定的脚本。
脚本执行模块225执行指定脚本的动作。脚本执行模块225可以将光标导引到与捕获的图像相匹配的屏幕的一部分并且点击鼠标。脚本执行模块225可以在于匹配捕获图像的屏幕区域(可以将光标放置在该位置)上点击鼠标之后选择一系列按键。
在一些情况下,脚本执行模块225可能遇到错误。错误检测器230可以被配置为分析由脚本执行模块225执行的动作以确定是否发生错误或异常。在一些情况下,如果脚本执行模块225不能执行动作,则脚本执行模块225可以生成错误。例如,脚本执行模块225可能无法定位与由脚本生成器215捕获的屏幕的图像相匹配的用户界面205的区域。在这种情况下,脚本执行模块225可以生成错误。
错误检测器230可以向计算机视觉模块235提供错误数据。计算机视觉模块235可以被配置为分析屏幕,以获得可能与由脚本生成器215捕获的屏幕相匹配的位置。计算机视觉模块235可以在匹配之上提供脚本执行模块225执行的功能。例如,计算机视觉模块235可以分析由脚本生成器215捕获的屏幕的文本和图像,并将所述文本和图像与用户界面进行比较。计算机视觉模块235可以识别捕获图像中的字母“conta”。计算机视觉模块235可以为文本“conta”扫描用户界面。计算机视觉模块235可以执行边缘检测以检测捕获的图像中的形状,并扫描用户界面以获得相似的形状。计算机视觉模块235可以提供识别可能对应于由脚本生成器215捕获的图像的用户界面的区域的数据。
命令分类器240可以被配置为对生成错误的命令或动作的类型进行分类。一些示例类型可以包括:用鼠标选择图标、通过触摸屏幕选择图标、在键盘上键入、滚动鼠标、点击并拖动鼠标或任何其他类似类型的动作或命令。为了对命令进行分类,命令分类器240可以分析输入以获得对应的命令或动作。例如,在具有厚边的区域上单击或双击鼠标可能指示用户点击了图标。使用鼠标滚轮很可能指示用户正在滚动屏幕的区域。命令分类器240可以识别可能的命令类型并将该命令类型提供给命令修改器255。
错误分类器245可以被配置为对由错误检测器230生成的错误类型进行分类。某些示例类型可以包括图像位置错误、初始化过程的错误、意外结果或任何其他类似的错误。为了对错误进行分类,错误分类器245可以分析动作的参数和由错误检测器230生成的任何错误。例如,定位与捕获的图像相对应的屏幕的一部分的错误可以是图像位置错误。错误可能涉及执行***200期望打开文字处理应用的动作并且所述动作不会改变在***200上运行的过程。错误分类器245可以识别错误的类型并将错误类型提供给命令修改器255。
过程分析器250可以被配置为监测在执行脚本期间正在运行的过程。过程分析器250可以通过过程管理器210访问过程,并将所述过程与在执行脚本期间预期的过程进行比较。当错误检测器230检测到错误时,过程分析器250可以识别应该已经运行的任何过程或者不应该运行的任何过程或两者。过程分析器250可以在错误检测器230识别到错误之前分析在动作期间的过程。过程分析器250可以在错误检测器230识别到错误之前和之后立即分析过程。过程分析器250可以将过程数据提供给命令修改器255。
命令修改器255从计算机视觉模块235、命令分类器240、错误分类器245和过程分析器250接收数据,并且应用存储在脚本修复模型存储器260中的脚本修复模型。***使用输入到***200中的先前数据来生成并训练脚本修复模型。先前数据可以包括用户为执行特定任务而采取的动作。例如,所述数据可以包括用户为了启动应用来打开公交时刻表应用而采取的动作。所述数据可以包括不同用户用来打开公交时刻表应用而采取的多个动作系列。一些可能包括从菜单或桌面打开公交时刻表应用。一些可能包括关闭弹出窗口。先前数据可以包括***200已经执行的先前动作和过程。
***200可以通过在用户界面的多个部分上执行计算机视觉或通过监测过程或两者来识别由用户打开的应用。先前数据可以包括***200已经应用于其他脚本的修改以及这些修改的结果。例如,***200可能先前已经裁剪图像并将裁剪后的图像与当前用户界面进行比较。***200可以使用图像裁剪数据和随后的结果来训练脚本修复模型,不管随后的结果是否包括错误。***200还可以具有被配置为用于不同类型的错误和命令的脚本修复模型。由错误分类器245识别的特定类型的错误可以使得命令修改器255访问针对所识别的错误类型的脚本修复模型。由命令分类器240识别的特定类型的命令可以使得命令修改器255访问针对所识别的命令类型的脚本修复模型。该***可以使用神经网络和机器学习来生成以及训练脚本修复模型。
命令修改器255将脚本修复模型应用于来自计算机视觉模块235、命令分类器240、错误分类器245和过程分析器250的数据。命令修改器255生成一个或多个候选修改。如图1A和1B所示的示例,候选修改可以包括:裁剪图像134c,降低阈值图像分数以识别与图像134c最匹配的用户界面100c的部分,以及在图像134c和用户界面100c上执行光学字符识别。命令修改器255向修改评分模块265提供候选修改,以为每个候选修改生成修复置信度分数。修复置信度分数可以反映候选修改将校正脚本中的错误的可能性。修改评分模块265可以使用通过应用脚本修复模型生成的数据来生成修复置信度分数。
在一些实现中,命令修改器255可以访问用户界面生成器270以向用户提出候选修改。用户界面生成器270可以呈现候选修改并请求用户选择候选修改中的一个。备选地或另外地,用户界面生成器270可以请求用户建议修改。如图1A和1B所示的示例,用户可以建议命令修改器255修改脚本,以便脚本在用户界面100c中搜索词语“联系人”。在一些实现中,命令修改器255可以对该命令应用修改并且执行修改的命令。用户界面生成器270可以向用户请求确认修改的命令是否校正了错误。在一些实现中,命令修改器可以在一些情况下使用深度学习技术或规划技术或两者来模拟修改的命令。
在一些实现中,命令修改器255访问修改的命令模拟器275。修改的命令模拟器275可以被配置为模拟候选修改。如图1A和1B所示的示例,修改的命令模拟器275可能能够裁剪图像134c,降低阈值图像分数以识别与图像134c最匹配的用户界面100c的部分,以及在图像134c和用户界面100c上执行光学字符识别而不修改脚本。修改的命令模拟器275可以被配置为识别哪些模拟的修改的命令生成错误。修改的命令模拟器275可能能够模拟***200在生成错误的命令之后执行的命令。例如,修改的命令模拟器275可以模拟裁剪图像134c并模拟脚本的后续动作。修改的命令模拟器275可能能够识别后续动作中的任何错误。有些情况下,修改的命令可能不会生成错误,但随后的动作会生成错误,这表明命令修改可能不是修复脚本的正确修改。
命令修改器255基于应用脚本修复模型和基于来自修改评分模块265和用户界面生成器270的数据来选择候选修改中的一个。在一些实现中,命令修改器255从修改的命令模拟器275接收附加数据并使用该数据来选择修改。命令修改器255可以选择具有最高修复置信度分数的候选修改、由用户选择的候选修改或由修改的命令模拟器275识别的候选修改。
命令修改器255将修改应用于生成错误的命令并更新脚本。***200可以执行修改的命令并确定修改的命令是否生成新的错误。在一些实现中,命令修改器255可以识别具有类似的命令的其他脚本并且将修改应用于那些脚本。例如,命令修改器255可以识别搜索包括图像139d的图像的其他脚本。命令修改器255可以使用计算机视觉技术来识别图像。命令修改器255可以通过裁剪那些图像与图像139d类似来修改对应的命令。
图3示出了用于捕获、执行和修改自动化脚本的示例过程300。通常,过程300捕获并执行自动化脚本。在一些情况下,自动化脚本可能会生成错误。在这些情况下,过程300修改脚本以修复错误。过程300将被描述为由包括一个或多个计算机的计算机***执行,例如,在图2中所示的***200。
***接收包括一个或多个命令并且被配置为与出现在用户界面上的图形元素交互的自动化脚本(310)。脚本可以包括用于***的、匹配用户界面的对应部分的图像。例如,该脚本可以包括供选择以用于打开联系人应用和访问特定联系人的图标的图像。脚本可以由用户请求***记录脚本来生成。
***执行自动化脚本的一个或多个命令中的命令(320)。在一些实现中,***使用计算机视觉分析用户界面的屏幕截图。***在用户界面中识别可能与由自动化脚本指定的图形元素相匹配的屏幕区域。***选择与自动化脚本指定的图形元素相匹配的屏幕区域。例如,***可以执行命令来识别并选择与脚本中包括的图像相匹配的用户界面的一部分。***确定在执行自动化脚本的一个或多个命令中的命令期间错误发生(330)。例如,***可能无法识别与脚本中包含的图像相匹配的用户界面的一部分。
响应于确定在命令的执行期间发生错误,***通过向命令应用脚本修复模型来确定针对命令的修改(340),所述脚本修复模型使用一个或多个自动化脚本来训练,每个自动化脚本都包含命令和对应于每个命令的结果。在一些实现中,***使用由不同用户和跨越不同***提供的输入来训练脚本修复模型。该***还使用这些输入的结果来训练脚本修复模型。在一些实现中,脚本修复模型使用神经网络,并且***使用机器学习来训练所述脚本修复模型。在一些实现中,***学习描述针对动作的修改的脚本修复模型。该脚本修复模型可以是,例如神经网络或其他机器学习算法。***可以使用脚本修复来模拟来自任何命令的后续动作。***可以在脚本修复模型上使用规划技术来选择修复脚本或修改。在一些实现中,修改包括裁剪包含在脚本中的图像以及尝试将裁剪后的图像匹配到用户界面。
在一些实现中,***针对一个或多个候选修改中的每一个确定修复置信度分数,该修复置信度分数反映了将相应的候选修改应用于命令将校正错误的可能性。例如,尽管没有生成满足阈值的图像匹配分数,但***可以确定用于裁剪图像的修复置信度分数是0.9并且用于选择与图像最匹配的用户界面的部分的修复置信度分数为0.7。***可以通过选择具有最高修复置信度分数的修改来选择修改。
在一些实现中,***对在执行自动化脚本的一个或多个命令中的命令期间发生的命令或错误进行分类。***可以应用与命令类型或错误类型相匹配的脚本修复模型。例如,***可以针对不同的命令应用不同的脚本修复模型,不同的命令例如为用鼠标选择图标、通过触摸屏幕选择图标、在键盘上键入、滚动鼠标或者点击并拖动鼠标。在一些实现中,***可以向用户呈现修改和请求确认。***可以接收确认并应用修改。
***执行修改的命令(350)。在一些实现中,***模拟修改的命令。***确定在执行修改的命令期间所述错误或其他错误是否发生(360)。在一些实现中,***确定在模拟修改的命令期间所述错误或其他错误是否发生。
基于确定在执行修改的命令期间所述错误或者其他错误是否发生,***确定是否使用修改后的命令来更新自动化脚本(370)。在一些实现中,***确定在执行修改的命令期间所述错误或另一错误发生。在这种情况下,***可以确定不使用修改的命令来更新自动化脚本。***可以基于将脚本修复模型应用于命令来确定命令的附加修改,并重试附加修改。在一些实现中,***使用指示在执行修改的命令期间发生错误或其他错误的数据来更新脚本修复模型。例如,***可以更新脚本修复模型以防止脚本修复模型将修改应用于类似的命令。
在一些实现中,***确定在执行修改的命令期间所述错误或其他错误并未发生。在这种情况下,***可以使用修改的命令来更新自动化脚本,以指示修改是成功的。***可以用指示修改成功的数据来更新脚本修复模型。***也可以利用该修改更新其他脚本的其他类似命令。
图4示出了可以用于实现本文描述的技术的计算设备400和移动计算设备450的示例。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。移动计算设备450旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算设备。这里显示的组件、它们的连接和关系以及它们的功能仅意在作为示例,并不意味着限制。
计算设备400包括处理器402、存储器404、存储设备406、连接到存储器404和多个高速扩展端口410的高速接口408、以及连接到低速扩展端口414和存储设备406的低速接口412。处理器402、存储器404、存储设备406、高速接口408、高速扩展端口410和低速接口412中的每一个使用各种总线相互连接,并且可以被安装在普通主板上或以其他方式适当安装。处理器402可以处理用于在计算设备400内执行的指令,包括存储在存储器404中或存储设备406上的指令,以在外部输入/输出设备(例如耦接到高速接口408的显示器416)上显示GUI的图形信息。在其他实现中,多个处理器和/或多个总线可以与多个存储器和多种类型的存储器一同被适当地使用。而且,多个计算设备可以被连接,每个设备提供必要操作的部分(例如,作为服务器组,一组刀片服务器或多处理器***)。
存储器404在计算设备400内存储信息。在一些实现中,存储器404是一个或多个易失性存储单元。在一些实现中,存储器404是一个或多个非易失性存储单元。存储器404也可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备406能够为计算设备400提供大容量存储。在一些实现中,存储设备406可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备或者设备阵列,包括在存储区域网络或其他配置中的设备。指令可以被存储在信息载体中。这些指令在由一个或多个处理设备(例如,处理器402)执行时执行一个或多个方法,诸如上面所描述的那些方法。指令也可以由一个或多个存储设备(诸如计算机或机器可读介质(例如,存储器404、存储设备406或处理器402上的存储器))来存储。
高速接口408管理计算设备400的带宽密集型操作,而低速接口412管理较低带宽密集型操作。这种功能分配仅作为一个示例。在一些实现中,高速接口408被耦接到存储器404、显示器416(例如,通过图形处理器或加速器)以及被耦接到可以接受各种扩展卡的高速扩展端口410。在该实现中,低速接口412被耦接到存储设备406和低速扩展端口414。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口414可以被耦接到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或者诸如交换机或路由器之类的网络设备,例如通过网络适配器。
如图所示,计算设备400可以以多种不同的形式来实现。例如,它可以被实现为标准服务器420,或者在一组这样的服务器中被多次实现。另外,它可以在诸如膝上型计算机422的个人计算机中被实现。它也可以被实现为机架服务器***424的一部分。可选地,来自计算设备400的组件可以与移动设备(诸如移动计算设备450)中的其他组件组合。这些设备中的每一个可以包含计算设备400和移动计算设备450中的一个或多个,并且整个***可以由彼此通信的多个计算设备组成。
移动计算设备450包括处理器452、存储器464、诸如显示器454的输入/输出设备、通信接口466和收发器468,以及其他组件。移动计算设备450还可以被配备存储设备,诸如微型驱动器或其他设备,以提供额外的存储。处理器452、存储器464、显示器454、通信接口466和收发器468中的每一个使用各种总线互相连接,并且若干组件可以被安装在共同主板上或以其他方式适当地安装。
处理器452可以执行移动计算设备450内的指令,包括存储在存储器464中的指令。处理器452可以被实现为包括单独的和多个模拟和数字处理器的芯片组。处理器452可以提供例如移动计算设备450的其他组件的协调,诸如用户界面、由移动计算设备450运行的应用以及移动计算设备450的无线通信的控制。
处理器452可以通过耦接到显示器454的控制接口458和显示接口456与用户通信。显示器454可以是:例如TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器,或其他适当的显示技术。显示接口456可以包括用于驱动显示器454以向用户呈现图形和其他信息的适当电路。控制接口458可以接收来自用户的命令并将其转换以提交给处理器452。另外,外部接口462可以提供与处理器452的通信,以便实现移动计算设备450与其他设备的近距离通信。外部接口462可以例如在一些实现中提供有线通信,或者在其他实现中提供无线通信,并且多个接口还可以被使用。
存储器464在移动计算设备450内存储信息。存储器464可以被实现为计算机可读介质或多个介质,易失性存储器单元或多个单元或者非易失性存储器单元或多个单元中的一个或多个。扩展存储器474也可以被提供并且通过扩展接口472连接到移动计算设备450,扩展接口472可以包括例如SIMM(单列直插式存储器模块)卡接口。扩展存储器474可以为移动计算设备450提供额外的存储空间,或者还可以存储用于移动计算设备450的应用或其他信息。具体地,扩展存储器474可以包括用来执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器474可以作为用于移动计算设备450的安全模块来提供,并且可以用允许安全使用移动计算设备450的指令来编程。另外,可以通过SIMM卡提供安全应用以及其他信息,例如以不可破解的方式在SIMM卡上放置识别信息。
如下所述,存储器可以包括例如闪存和/或NVRAM存储器(非易失性随机存取存储器)。在一些实现中,指令被存储在信息载体中。指令在由一个或多个处理设备(例如,处理器452)执行时执行一个或多个方法,诸如上述那些方法。指令还可以由一个或多个存储设备(诸如一个或多个计算机或机器可读介质(例如,存储器464、扩展存储器474或处理器452上的存储器))存储。在一些实现中,指令可以例如通过收发器468或外部接口462在传播信号中被接收。
移动计算设备450可以通过通信接口466进行无线通信,通信接口466在必要时可以包括数字信号处理电路。通信接口466可以在各种模式或协议下提供通信,各种模式或协议例如为GSM语音呼叫(全球移动通信***)、SMS(短消息服务)、EMS(增强型消息服务)或MMS消息(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线业务)等等。例如,这种通信可以通过使用射频的收发器468来发生。此外,短距离通信可以发生,诸如使用蓝牙、WiFi或其他此类收发器。此外,GPS(全球定位***)接收器模块470可以向移动计算设备450提供附加的与导航和位置有关的无线数据,所述无线数据可以由在移动计算设备450上运行的应用程序适当地使用。
移动计算设备450还可以使用音频编解码器460可听地通信,所述音频编解码器460可以接收来自用户的口头信息并将其转换为可用的数字信息。音频编解码器460同样可以例如通过扬声器(例如,在移动计算设备450的听筒中)为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且还可以包括由在移动计算设备450上操作的应用生成的声音。
如图所示,移动计算设备450可以以多种不同的形式来实现。例如,它可以被实现为蜂窝电话480。它也可以被实现为智能电话582、个人数字助理或其他类似移动设备的一部分。
这里描述的***和技术的各种实现可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实现可以包括在可编程***上可执行和/或可解释的一个或多个计算机程序中的实现,该可编程***包括至少一个可编程处理器,所述可编程处理器可以是专用或通用的用途,被耦接以从存储***、至少一个输入设备和至少一个输出设备接收数据和指令,并且将数据和指令发送到存储***、至少一个输入设备和至少一个输出设备。
这些计算机程序(也称为程序,软件,软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言来实现。如本文所使用的,术语机器可读介质和计算机可读介质是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLDs)),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的***和技术可以在具有显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现,显示设备用于向用户显示信息,用户可以通过键盘和定点设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈,听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学,语音或触觉输入。
这里描述的***和技术可以在计算***中实现,该计算***包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过其与此处描述的***和技术的实现交互),或这些后端、中间件或前端组件的任何组合。***的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互相连接。通信网络的示例包括局域网(LAN),广域网(WAN)和因特网。
计算***可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器之间的关系是经由运行在各个计算机上的并且彼此具有客户端-服务器关系的计算机程序产生的。
尽管以上已经详细描述了一些实现,但其他修改是可能的。例如,虽然客户端应用被描述为访问代理,但是在其他实现中,代理可以被由一个或多个处理器实现的其他应用使用,诸如在一个或多个服务器上执行的应用。此外,附图中描述的逻辑流程不需要所示出的特定顺序或连续顺序来实现期望的结果。此外,可以提供其他动作,或者可以从所描述的流程取消动作,并且可以向所描述的***添加其他组件或从所描述的***移除其他部件。因此,其他实现在以下权利要求的范围内。

Claims (20)

1.一种计算机实现的方法,包括:
由计算设备接收包括一个或多个命令的并且被配置为与出现在用户界面上的图形元素交互的自动化脚本;
由所述计算设备执行所述自动化脚本的所述一个或多个命令中的命令;
由所述计算设备确定在所述自动化脚本的所述一个或多个命令中的所述命令的执行期间发生错误;
响应于确定在所述命令的执行期间发生错误,由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果;
由所述计算设备执行经修改的所述命令;
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误;以及
基于确定经修改的所述命令的执行期间是否发生所述错误或所述另一错误,确定是否利用经修改的所述命令更新所述自动化脚本。
2.根据权利要求1所述的方法,其中:
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或所述另一错误包括:
确定在经修改的所述命令的执行期间发生所述错误或所述另一错误,
确定是否利用经修改的所述命令更新所述自动化脚本包括:
确定不利用经修改的所述命令更新所述自动化脚本,并且
所述方法包括:
基于所述脚本修复模型向所述命令的应用,由所述计算设备确定针对所述命令的附加修改。
3.根据权利要求2所述的方法,包括:
基于确定在经修改的所述命令的执行期间发生所述错误或所述另一错误,使用指示在经修改的所述命令的执行期间发生所述错误或所述另一错误的数据来更新所述脚本修复模型。
4.根据权利要求1所述的方法,其中:
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或所述另一错误包括:
确定在经修改的所述命令的执行期间没有发生所述错误或所述另一错误,
确定是否利用经修改的所述命令更新所述自动化脚本包括:
确定利用经修改的所述命令更新所述自动化脚本。
5.根据权利要求4所述的方法,包括:
确定在经修改的所述命令的执行期间没有发生所述错误或所述另一错误,使用指示在经修改的所述命令的执行期间没有发生所述错误或所述另一错误的数据来更新所述脚本修复模型。
6.根据权利要求4所述的方法,包括:
识别包括与所述自动化脚本的所述命令类似的另一命令的另一自动化脚本;以及
使用经修改的所述命令来更新所述另一自动化脚本的所述另一命令。
7.根据权利要求1所述的方法,其中:
执行所述自动化脚本的所述一个或多个命令中的所述命令包括:
使用计算机视觉分析所述用户界面的屏幕截图;
基于分析所述用户界面的所述屏幕截图,在所述用户界面中识别可能与由所述自动化脚本指定的图形元素相匹配的、所述屏幕的区域;以及
由所述计算设备选择与由所述自动化脚本指定的所述图形元素相匹配的、所述屏幕的所述区域,并且
确定针对所述命令的所述修改包括:
调整可能与由所述自动化脚本指定的所述图形元素相匹配的、所述屏幕的所述区域的尺寸。
8.根据权利要求1所述的方法,其中由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改包括以下步骤,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果:
通过所述脚本修复模型对在所述自动化脚本的所述一个或多个命令中的所述命令的执行期间发生的错误进行分类;以及
基于对所述错误的分类,通过将所述脚本修复模型应用于所述命令来确定针对所述命令的所述修改。
9.根据权利要求1所述的方法,其中:
由所述计算设备执行经修改的所述命令包括:
由所述计算设备模拟经修改的所述命令,并且
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或所述另一错误包括:
确定在经修改的所述命令的模拟期间是否发生所述错误或所述另一错误。
10.根据权利要求1所述的方法,其中由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改包括以下步骤,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果:
针对一个或多个候选修改中的每个候选修改,通过向所述命令应用所述脚本修复模型,来确定修复置信度分数,所述修复置信度分数反映向所述命令应用相应的候选修将校正所述错误的可能性;以及
基于所述修复置信度分数,从所述一个或多个候选修改中选择针对所述命令的所述修改。
11.根据权利要求1所述的方法,其中确定是否利用经修改的所述命令更新所述自动化脚本包括:
使用机器学习来确定是否利用经修改的所述命令更新所述自动化脚本。
12.一种***,包括:
一个或多个计算机;以及
存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时可操作,以使得所述一个或多个计算机执行操作,所述操作包括:
由计算设备接收包括一个或多个命令的并且被配置为与出现在用户界面上的图形元素交互的自动化脚本;
由所述计算设备执行所述自动化脚本的所述一个或多个命令中的命令;
由所述计算设备确定在所述自动化脚本的所述一个或多个命令中的所述命令的执行期间发生错误;
响应于确定在所述命令的执行期间发生错误,由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果;
由所述计算设备执行经修改的所述命令;
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误;以及
基于确定在经修改的所述命令的执行期间是否发生所述错误或所述另一错误,确定是否利用经修改的所述命令更新所述自动化脚本。
13.根据权利要求12所述的***,其中:
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误包括:
确定在经修改的所述命令的执行期间发生所述错误或所述另一错误,
确定是否利用经修改的所述命令更新所述自动化脚本包括:
确定不利用经修改的所述命令更新所述自动化脚本,并且
所述方法包括:
基于所述脚本修复模型向所述命令的应用,由所述计算设备确定针对所述命令的附加修改。
14.根据权利要求12所述的***,其中:
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误包括:
确定在经修改的所述命令的执行期间没有发生所述错误或所述另一错误,
确定是否利用经修改的所述命令更新所述自动化脚本包括:
确定利用经修改的所述命令更新所述自动化脚本。
15.根据权利要求12所述的***,其中:
执行所述自动化脚本的所述一个或多个命令中的所述命令包括:
使用计算机视觉分析所述用户界面的屏幕截图;
基于分析所述用户界面的所述屏幕截图,在所述用户界面中识别可能与由所述自动化脚本指定的图形元素相匹配的、所述屏幕的区域;以及
由所述计算设备选择与由所述自动化脚本指定的所述图形元素相匹配的、所述屏幕的所述区域,并且
确定针对所述命令的所述修改包括:
调整可能与由所述自动化脚本指定的所述图形元素相匹配的、所述屏幕的所述区域的尺寸。
16.根据权利要求12所述的***,其中由所述计算设备通过向所述命令应用脚本修复模型来确定针所述命令的修改包括以下步骤,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果:
通过所述脚本修复模型对在所述自动化脚本的所述一个或多个命令中的所述命令的执行期间发生的所述错误进行分类;以及
基于对所述错误的所述分类,通过向所述命令应用所述脚本修复模型来确定针对所述命令的所述修改。
17.根据权利要求12所述的***,其中:
由所述计算设备执行经修改的所述命令包括:
由所述计算设备模拟经修改的所述命令,并且
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误包括:
确定在经修改的所述命令的模拟期间是否发生所述错误或所述另一错误。
18.根据权利要求12所述的***,其中由所述计算设备通过向所述命令应用脚本修复模型来确定针所述命令的修改包括以下步骤,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果:
针对一个或多个候选修改中的每个候选修改,通过向所述命令应用所述脚本修复模型,确定修复置信度分数,所述修复置信度分数反映向所述命令应用相应的候选修改将校正所述错误的可能性;以及
基于所述修复置信度分数,从所述一个或多个候选修改中选择针对所述命令的所述修改。
19.根据权利要求12所述的***,其中确定是否利用经修改的所述命令更新所述自动化脚本包括:
使用机器学习来确定是否利用经修改的所述命令更新所述自动化脚本。
20.一种存储软件的非临时性计算机可读介质,所述软件包括由一个或多个计算机可执行的指令,所述指令在执行时,使得所述一个或多个计算机执行操作,所述操作包括:
由计算设备接收包括一个或多个命令的并且被配置为与出现在用户界面上的图形元素交互的自动化脚本;
由所述计算设备执行所述自动化脚本的所述一个或多个命令中的命令;
由所述计算设备确定在所述自动化脚本的所述一个或多个命令中的所述命令的执行期间发生错误;
响应于确定在所述命令的执行期间发生错误,由所述计算设备通过向所述命令应用脚本修复模型来确定针对所述命令的修改,所述脚本修复模型使用一个或多个自动化脚本被训练,所述一个或多个自动化脚本各自包括命令以及对应于每个命令的结果;
由所述计算设备执行经修改的所述命令;
由所述计算设备确定在经修改的所述命令的执行期间是否发生所述错误或另一错误;以及
基于确定在经修改的所述命令的执行期间是否发生所述错误或所述另一错误,确定是否利用经修改的所述命令更新所述自动化脚本。
CN201810642081.3A 2017-06-23 2018-06-21 自学习机器人过程自动化 Active CN109117215B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/632,099 US10235192B2 (en) 2017-06-23 2017-06-23 Self-learning robotic process automation
US15/632,099 2017-06-23

Publications (2)

Publication Number Publication Date
CN109117215A true CN109117215A (zh) 2019-01-01
CN109117215B CN109117215B (zh) 2021-06-11

Family

ID=62217733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810642081.3A Active CN109117215B (zh) 2017-06-23 2018-06-21 自学习机器人过程自动化

Country Status (3)

Country Link
US (2) US10235192B2 (zh)
EP (1) EP3418896B1 (zh)
CN (1) CN109117215B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180013A1 (en) 2019-03-04 2020-09-10 Samsung Electronics Co., Ltd. Apparatus for vision and language-assisted smartphone task automation and method thereof
CN111673747A (zh) * 2020-06-02 2020-09-18 中国建设银行股份有限公司 机器人代理端的远程测试方法及装置
CN112230973A (zh) * 2020-11-11 2021-01-15 国网山东省电力公司 自适应的跨软件域rpa***
CN112241302A (zh) * 2019-07-19 2021-01-19 尤帕斯公司 基于多锚点的用户界面的提取、识别与机器学习
CN112748909A (zh) * 2021-01-22 2021-05-04 平安普惠企业管理有限公司 基于神经网络模型的数据修改方法、装置、设备及介质
CN113011828A (zh) * 2019-12-20 2021-06-22 尤帕斯公司 更新或重新训练并更新动态人工智能/机器学习模型

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US11138539B2 (en) * 2017-08-25 2021-10-05 Target Brands, Inc. Robtic business process automation system utilizing reusable task-based microbots
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10606687B2 (en) * 2017-12-04 2020-03-31 Bank Of America Corporation Process automation action repository and assembler
US10878531B2 (en) * 2018-08-17 2020-12-29 Accenture Global Solutions Limited Robotic process automation
US11366857B2 (en) * 2018-08-21 2022-06-21 Directly, Inc. Artificial intelligence communications agent
US10810020B2 (en) * 2018-10-18 2020-10-20 EMC IP Holding Company LLC Configuring a device using an automated manual process bridge
US10710239B2 (en) * 2018-11-08 2020-07-14 Bank Of America Corporation Intelligent control code update for robotic process automation
CN109732613B (zh) * 2019-03-13 2023-08-18 哈尔滨市伟晨星知识产权法律服务有限公司 机械手臂达到特定状态效果评估***
CN109807913A (zh) * 2019-03-29 2019-05-28 郑州市智慧环境机器人产业研究院有限公司 一种双臂机器人排雷协同控制***及排雷方法
US11113095B2 (en) 2019-04-30 2021-09-07 Automation Anywhere, Inc. Robotic process automation system with separate platform, bot and command class loaders
US11487973B2 (en) * 2019-07-19 2022-11-01 UiPath, Inc. Retraining a computer vision model for robotic process automation
US11074063B2 (en) 2019-09-10 2021-07-27 International Business Machines Corporation Automatic upgrade of robotic process automation using a computer
US10963231B1 (en) 2019-10-15 2021-03-30 UiPath, Inc. Using artificial intelligence to select and chain models for robotic process automation
US20210109503A1 (en) 2019-10-15 2021-04-15 UiPath, Inc. Human-in-the-loop robot training for robotic process automation
US11488015B2 (en) 2019-10-15 2022-11-01 UiPath, Inc. Artificial intelligence layer-based process extraction for robotic process automation
US11440201B2 (en) 2019-10-15 2022-09-13 UiPath, Inc. Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US11263117B2 (en) * 2019-10-28 2022-03-01 Bank Of America Corporation System for intelligent code update for a test automation engine
US20210191367A1 (en) * 2019-12-20 2021-06-24 UiPath, Inc. System and computer-implemented method for analyzing a robotic process automation (rpa) workflow
US11481304B1 (en) 2019-12-22 2022-10-25 Automation Anywhere, Inc. User action generated process discovery
CN111273798B (zh) * 2020-01-16 2024-02-06 钮永豪 执行鼠标宏指令的方法及***、执行宏指令的方法及装置
US20210326244A1 (en) 2020-04-21 2021-10-21 UiPath, Inc. Test automation for robotic process automation
US11797432B2 (en) 2020-04-21 2023-10-24 UiPath, Inc. Test automation for robotic process automation
US11080548B1 (en) 2020-05-01 2021-08-03 UiPath, Inc. Text detection, caret tracking, and active element detection
US11200441B2 (en) 2020-05-01 2021-12-14 UiPath, Inc. Text detection, caret tracking, and active element detection
US11461164B2 (en) 2020-05-01 2022-10-04 UiPath, Inc. Screen response validation of robot execution for robotic process automation
US20210349430A1 (en) * 2020-05-11 2021-11-11 UiPath, Inc. Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
US11449359B2 (en) 2020-06-12 2022-09-20 Optum Services (Ireland) Limited Prioritized data object processing under processing time constraints
US11748069B2 (en) * 2020-07-07 2023-09-05 UiPath, Inc. User interface (UI) descriptors, UI object libraries, UI object repositories, and UI object browsers for robotic process automation
US20220032457A1 (en) * 2020-08-03 2022-02-03 Automation Anywhere, Inc. Robotic Process Automation with Resilient Playback of Recordings
US11507259B2 (en) 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US10963731B1 (en) * 2020-10-13 2021-03-30 Fmr Llc Automatic classification of error conditions in automated user interface testing
US11301269B1 (en) 2020-10-14 2022-04-12 UiPath, Inc. Determining sequences of interactions, process extraction, and robot generation using artificial intelligence / machine learning models
US11650874B2 (en) * 2020-10-14 2023-05-16 UiPath, Inc. Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
US11921608B2 (en) 2020-10-30 2024-03-05 Accenture Global Solutions Limited Identifying a process and generating a process diagram
US11200073B1 (en) 2020-11-20 2021-12-14 UiPath, Inc. Automatic anchor determination and target graphical element identification in user interface automation
US11513886B2 (en) 2021-03-11 2022-11-29 UiPath, Inc. System and computer-implemented method for managing robotic process automation (RPA) robots
CN113268431B (zh) * 2021-06-24 2022-08-19 深圳市凯莱特科技股份有限公司 一种rpa机器人软件的学习方法
US11968182B2 (en) 2021-07-29 2024-04-23 Automation Anywhere, Inc. Authentication of software robots with gateway proxy for access to cloud-based services
GB2609947A (en) * 2021-08-18 2023-02-22 Blue Prism Ltd Systems and methods for determining GUI in interaction information for an end user device
US20230101948A1 (en) * 2021-09-28 2023-03-30 UiPath, Inc. Generation of rpa platform design components for configuring rpa platforms
US20230139969A1 (en) * 2021-11-04 2023-05-04 Sap Se Idempotent resource management system provisioning
KR102418739B1 (ko) * 2022-03-29 2022-07-08 주식회사 시메이션 로보틱 자동화 방법 및 이를 수행하기 위한 컴퓨팅 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288070A1 (en) * 2008-05-13 2009-11-19 Ayal Cohen Maintenance For Automated Software Testing
US20140244831A1 (en) * 2013-02-28 2014-08-28 Hewlett-Packard Development Company, L.P. Transport script generation based on a user interface script
CN104679649A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种软件流畅度测试方法和测试装置
US20160342501A1 (en) * 2015-05-18 2016-11-24 Hcl Technologies Limited Accelerating Automated Testing

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825394A (en) 1985-05-07 1989-04-25 General Dynamics Corporation Vision metrology system
US7453451B1 (en) 1999-03-16 2008-11-18 Maguire Francis J Jr Moveable headrest for viewing images from different directions
US6181371B1 (en) 1995-05-30 2001-01-30 Francis J Maguire, Jr. Apparatus for inducing attitudinal head movements for passive virtual reality
US8330812B2 (en) 1995-05-30 2012-12-11 Simulated Percepts, Llc Method and apparatus for producing and storing, on a resultant non-transitory storage medium, computer generated (CG) video in correspondence with images acquired by an image acquisition device tracked in motion with respect to a 3D reference frame
JP2001159903A (ja) 1999-12-01 2001-06-12 Yamaha Motor Co Ltd 組合せ完成品用単位装置の最適化装置
US6907546B1 (en) 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
EP1472052A2 (en) 2002-01-31 2004-11-03 Braintech Canada, Inc. Method and apparatus for single camera 3d vision guided robotics
US7505604B2 (en) 2002-05-20 2009-03-17 Simmonds Precision Prodcuts, Inc. Method for detection and recognition of fog presence within an aircraft compartment using video images
US7165240B2 (en) * 2002-06-20 2007-01-16 International Business Machines Corporation Topological best match naming convention apparatus and method for use in testing graphical user interfaces
SE0203908D0 (sv) 2002-12-30 2002-12-30 Abb Research Ltd An augmented reality system and method
US7191172B2 (en) * 2003-03-25 2007-03-13 International Business Machines Corporation Fuzzy location of a testable object in a functional testing tool
US7613953B2 (en) 2003-05-27 2009-11-03 Oracle International Corporation Method of converting a regression test script of an automated testing tool into a function
US8381207B2 (en) 2003-12-02 2013-02-19 International Business Machines Corporation Script generation engine and mapping semantic models for target platform
US8775412B2 (en) * 2004-01-08 2014-07-08 International Business Machines Corporation Method and system for a self-healing query access plan
US7773799B2 (en) 2004-04-02 2010-08-10 The Boeing Company Method for automatic stereo measurement of a point of interest in a scene
WO2006016866A2 (en) 2004-07-08 2006-02-16 Microsoft Corporation Automatic image capture for generating content
US7626569B2 (en) 2004-10-25 2009-12-01 Graphics Properties Holdings, Inc. Movable audio/video communication interface system
EP1920393A2 (en) 2005-07-22 2008-05-14 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
EP2140316B1 (en) 2007-03-29 2011-12-28 iRobot Corporation Robot operator control unit configuration system and method
JP5228716B2 (ja) 2007-10-04 2013-07-03 日産自動車株式会社 情報提示システム
CA2712607A1 (en) 2008-01-25 2009-07-30 Mcmaster University Surgical guidance utilizing tissue feedback
US8151276B2 (en) * 2008-02-27 2012-04-03 Accenture Global Services Gmbh Test script transformation analyzer with change guide engine
US8559699B2 (en) 2008-10-10 2013-10-15 Roboticvisiontech Llc Methods and apparatus to facilitate operations in image based systems
WO2011073759A1 (en) * 2009-12-01 2011-06-23 Cinnober Financial Technology Ab Methods and systems for automatic testing of a graphical user interface
FR2954518B1 (fr) 2009-12-18 2012-03-23 Aripa Service Innovation Ind " systeme anticollision pour le deplacement d'un objet dans un environnement encombre."
US9104202B2 (en) 2010-05-11 2015-08-11 Irobot Corporation Remote vehicle missions and systems for supporting remote vehicle missions
US9462042B2 (en) 2010-05-26 2016-10-04 Tethys Solutions LLC System and method for enabling application discovery by automation needs
US8504803B2 (en) 2010-05-26 2013-08-06 Tethys Solutions LLC System and method for creating and executing portable software
US9954819B2 (en) 2010-05-26 2018-04-24 Automation Anywhere, Inc. System and method for compliance based automation
US10289959B2 (en) 2010-05-26 2019-05-14 Automation Anywhere, Inc. Artificial intelligence and knowledge based automation enhancement
US20180004823A1 (en) 2010-05-26 2018-01-04 Automation Anywhere, Inc. System and method for data profile driven analytics
US10430180B2 (en) 2010-05-26 2019-10-01 Automation Anywhere, Inc. System and method for resilient automation upgrade
US20170060108A1 (en) 2010-05-26 2017-03-02 Automation Anywhere, Inc. Roi based automation recommendation and execution
US8572570B2 (en) * 2010-06-10 2013-10-29 Accenture Global Services Limited Assisted compositional reasoning for test scripts
US8718837B2 (en) 2011-01-28 2014-05-06 Intouch Technologies Interfacing with a mobile telepresence robot
US9183124B2 (en) 2011-04-18 2015-11-10 Accenture Global Services Limited Automation controller for next generation testing system
EP2705441B1 (en) * 2011-05-03 2018-04-18 EntIT Software LLC Automatic classification adjustment of recorded actions for automation script
US9049259B2 (en) 2011-05-03 2015-06-02 Onepatont Software Limited System and method for dynamically providing visual action or activity news feed
US8793578B2 (en) 2011-07-11 2014-07-29 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
US10176725B2 (en) 2011-08-29 2019-01-08 Worcester Polytechnic Institute System and method of pervasive developmental disorder interventions
US9679215B2 (en) 2012-01-17 2017-06-13 Leap Motion, Inc. Systems and methods for machine control
GB201202344D0 (en) 2012-02-10 2012-03-28 Isis Innovation Method of locating a sensor and related apparatus
US20130335405A1 (en) 2012-06-18 2013-12-19 Michael J. Scavezze Virtual object generation within a virtual environment
US9092698B2 (en) 2012-06-21 2015-07-28 Rethink Robotics, Inc. Vision-guided robots and methods of training them
CN103577316B (zh) * 2012-07-31 2016-02-10 国际商业机器公司 脚本自动修复的方法和装置
US9607787B2 (en) 2012-09-21 2017-03-28 Google Inc. Tactile feedback button for a hazard detector and fabrication method thereof
CN105101903B (zh) 2013-02-04 2018-08-24 儿童国家医疗中心 混合控制外科机器人***
US9317410B2 (en) 2013-03-15 2016-04-19 International Business Machines Corporation Testing functional correctness and idempotence of software automation scripts
GB2517408A (en) 2013-07-05 2015-02-25 Blue Prism Ltd System for automating processes
US9378122B2 (en) 2013-09-10 2016-06-28 International Business Machines Corporation Adopting an existing automation script to a new framework
US9678825B2 (en) * 2014-02-18 2017-06-13 International Business Machines Corporation Autonomous reconfiguration of a failed user action
US9672728B2 (en) 2014-04-07 2017-06-06 Google Inc. Smart hazard detector drills
US9367379B1 (en) 2014-04-16 2016-06-14 Sprint Communications Company L.P. Automated self-healing computer system
US9704043B2 (en) 2014-12-16 2017-07-11 Irobot Corporation Systems and methods for capturing images and annotating the captured images with information
US9804955B2 (en) * 2015-07-28 2017-10-31 TestPlant Europe Limited Method and apparatus for creating reference images for an automated test of software with a graphical user interface
US20170228220A1 (en) * 2016-02-08 2017-08-10 International Business Machines Corporation Self-healing automated script-testing tool
US10204092B2 (en) * 2016-12-12 2019-02-12 Wipro Limited Method and system for automatically updating automation sequences
US10162741B2 (en) * 2017-01-24 2018-12-25 International Business Machines Corporation Automatically correcting GUI automation using machine learning
EP3364299B1 (en) 2017-02-15 2024-07-03 Blue Prism Limited System for optimising distribution of processing an automated process
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US10871977B2 (en) * 2018-08-29 2020-12-22 Ernst & Young U.S. Llp Automated software script remediation methods and systems
US10949225B2 (en) * 2019-02-06 2021-03-16 Sap Se Automatic detection of user interface elements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288070A1 (en) * 2008-05-13 2009-11-19 Ayal Cohen Maintenance For Automated Software Testing
US20140244831A1 (en) * 2013-02-28 2014-08-28 Hewlett-Packard Development Company, L.P. Transport script generation based on a user interface script
CN104679649A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种软件流畅度测试方法和测试装置
US20160342501A1 (en) * 2015-05-18 2016-11-24 Hcl Technologies Limited Accelerating Automated Testing

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020180013A1 (en) 2019-03-04 2020-09-10 Samsung Electronics Co., Ltd. Apparatus for vision and language-assisted smartphone task automation and method thereof
EP3871403A4 (en) * 2019-03-04 2021-12-29 Samsung Electronics Co., Ltd. Apparatus for vision and language-assisted smartphone task automation and method thereof
CN112241302A (zh) * 2019-07-19 2021-01-19 尤帕斯公司 基于多锚点的用户界面的提取、识别与机器学习
CN112241302B (zh) * 2019-07-19 2022-04-12 尤帕斯公司 基于多锚点的用户界面的提取、识别与机器学习
CN113011828A (zh) * 2019-12-20 2021-06-22 尤帕斯公司 更新或重新训练并更新动态人工智能/机器学习模型
US11822913B2 (en) 2019-12-20 2023-11-21 UiPath, Inc. Dynamic artificial intelligence / machine learning model update, or retrain and update, in digital processes at runtime
CN113011828B (zh) * 2019-12-20 2023-12-29 尤帕斯公司 更新或重新训练并更新动态人工智能/机器学习模型
CN111673747A (zh) * 2020-06-02 2020-09-18 中国建设银行股份有限公司 机器人代理端的远程测试方法及装置
CN111673747B (zh) * 2020-06-02 2021-12-17 中国建设银行股份有限公司 机器人代理端的远程测试方法及装置
CN112230973A (zh) * 2020-11-11 2021-01-15 国网山东省电力公司 自适应的跨软件域rpa***
CN112230973B (zh) * 2020-11-11 2021-11-02 国网山东省电力公司 自适应的跨软件域rpa***
CN112748909A (zh) * 2021-01-22 2021-05-04 平安普惠企业管理有限公司 基于神经网络模型的数据修改方法、装置、设备及介质

Also Published As

Publication number Publication date
CN109117215B (zh) 2021-06-11
EP3418896A1 (en) 2018-12-26
US20190265990A1 (en) 2019-08-29
US10970090B2 (en) 2021-04-06
US20180370029A1 (en) 2018-12-27
EP3418896B1 (en) 2020-07-22
US10235192B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109117215A (zh) 自学习机器人过程自动化
US10216377B2 (en) Visual regression analysis
US10114733B1 (en) System and method for automated testing of user interface software for visual responsiveness
CN103098051B (zh) 搜索引擎优化助理
US11809304B2 (en) Machine learned decision guidance for alerts originating from monitoring systems
CN108255290A (zh) 移动装置上的模态学习
EP3614317A1 (en) Robotic process automation
US11194596B2 (en) Simulating human interface interaction resilient to user interface changes
JP2018515817A (ja) 視線追跡と音声認識とを組み合わせることにより制御を改善する方法
US20180174288A1 (en) SCORE WEIGHTS FOR USER INTERFACE (ui) ELEMENTS
US10489007B2 (en) Contextualized application evaluation
US20210349666A1 (en) Transparent interactive interface for ballot marking and methods of using the same
US8650544B2 (en) Systems and methods for interactive testing of a computer application
US10929159B2 (en) Automation tool
CN112835807B (zh) 界面识别方法、装置、电子设备和存储介质
US9636582B2 (en) Text entry by training touch models
US20230120131A1 (en) Electronic system for developing a machine learning model
US11735165B2 (en) Task-oriented dialog system and method through feedback
CN116830088A (zh) 用于具有辅助学习的应用可访问性测试的***和方法
CN115917446A (zh) 用于机器人过程自动化的***和方法
US20210365280A1 (en) System & method for automated assistance with virtual content
US20210034946A1 (en) Recognizing problems in productivity flow for productivity applications
CN118312255A (zh) 基于指针行为的界面管理方法、装置及存储介质
WO2023244538A1 (en) Generating cross-domain guidance for navigating hci's
CN117934882A (zh) 基于图像特征匹配的元素识别方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant