CN104160370A - 基于图像的应用自动化 - Google Patents

基于图像的应用自动化 Download PDF

Info

Publication number
CN104160370A
CN104160370A CN201280068227.9A CN201280068227A CN104160370A CN 104160370 A CN104160370 A CN 104160370A CN 201280068227 A CN201280068227 A CN 201280068227A CN 104160370 A CN104160370 A CN 104160370A
Authority
CN
China
Prior art keywords
image
incoming event
processor
user interface
module
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
Application number
CN201280068227.9A
Other languages
English (en)
Inventor
M·兰兹克伦
D·萨罗尼
Y·利夫尼
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN104160370A publication Critical patent/CN104160370A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04842Selection of displayed objects or displayed text elements
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在一种实施方式中,基于图像的应用自动化系统在第一时间确定:来自与输入事件相关联的多个图像中的第一图像不满足图形用户界面的任何部分。然后,该基于图像的应用自动化系统,独立于用户输入,在第一时间之后从所述多个图像中选择第二图像,并且识别该第二图像所满足的该图形用户界面的一部分。

Description

基于图像的应用自动化
背景技术
一些基于图像的应用(或软件)自动化系统包括记录阶段和重放阶段。在记录阶段,基于图像的应用自动化系统记录用于将在重放阶段期间被自动化的应用的动作。例如,基于图像的应用自动化系统在用户图形界面检测输入事件,并且响应于每个输入事件而捕捉图形用户界面的图像。经常地,基于图像的应用自动化系统然后会定义用于每个输入事件的自动化动作,该自动化动作指定用于该输入事件的图像,并且在记录阶段期间定义的自动化动作被存储在脚本文件内。
在重放阶段期间,基于图像的应用自动化系统执行在记录阶段期间所记录的动作。例如,基于图像的应用自动化系统能识别脚本文件内的自动化动作并且重放在自动化动作中指定的输入事件。这就是说,对于每个自动化动作,基于图像的应用自动化系统识别与该自动化动作中所指定的图像相匹配的应用的图形用户界面的一部分,并且在该应用的该部分处执行输入事件。
附图说明
图1是根据一种实施方式的执行输入事件的过程的流程图。
图2是根据一种实施方式的将一组图像与输入事件相关联的过程的流程图。
图3A是根据一种实施方式的具有处于第一状态的图形用户界面元素的图形用户界面的一部分的图示。
图3B是根据一种实施方式的具有处于第二状态的图形用户界面元素的图3A的图形用户界面的该部分的图示。
图3C是根据一种实施方式的具有处于第三状态的图形用户界面元素的图3A及3B的图形用户界面的该部分的图示。
图4A是根据一种实施方式的包括图3A的图形用户界面元素的图像的图示。
图4B是根据一种实施方式的包括图3B的图形用户界面元素的图像的图示。
图4C是根据一种实施方式的包括图3C的图形用户界面元素的图像的图示。
图5是根据一种实施方式的自动化动作的图示。
图6是根据一种实施方式的将图像指定为输入事件的目标的过程的流程图。
图7是根据一种实施方式的基于图像的应用自动化系统的示意框图。
图8是根据一种实施方式的托管(host)基于图像的应用自动化系统的计算设备的示意框图。
具体实施方式
当基于图像的应用(或软件)自动化系统不能将与输入事件相关的图像与图形用户界面的一部分匹配时,这样的系统会遭受失败。例如,输入事件可以与具有多个状态(例如,视觉外观)的图形用户界面元素相关(或在其处被执行)。作为具体示例,该输入事件可以与按键控件相关,该按键控件具有当光标(例如,鼠标指针)没有悬停在该按键控件之上时的第一外观,以及当光标悬停在该按键控件之上时的第二外观。相应地,响应于诸如在该按键控件处的鼠标按键按下输入事件之类的输入事件而被捕捉的按键控件的图像将包括:处于第二视觉外观(或状态)的按键控件,这是因为当鼠标按键按下输入事件在该按键控件处执行时,鼠标指针悬停在该按键控件之上。
然而,在重放阶段期间,当基于图像的应用自动化系统试图在该按键控件处重放包括鼠标按键按下输入事件(例如,重放在自动化动作中指定的鼠标按键按下输入事件)的自动化动作时,鼠标指针可能不在按键控件之上悬停。作为结果,该按键控件是处于第一视觉外观,但是鼠标按键按下输入事件的图像包括处于第二视觉外观的该按键控件。因此,基于图像的应用自动化系统将很可能无法将该图像与该按键控件匹配,并且重放阶段对于该自动化动作而言将会失败。
在此讨论的实施方式确定图形用户界面不包括与输入事件相关联的一个图像所满足的部分,并且自动地(即,独立于来自用户的输入)确定是否该用户图形界面包括与该输入事件相关联的另一个图像所满足的部分。
例如,一组图像中的每一个图像可包括图形用户界面元素,在该图形用户界面元素处,处于多种状态中的一种状态的基于图像的应用自动化系统的重放阶段期间,输入事件将被执行。图像中的一个能够被指定为输入事件的目标。如果,在重放阶段期间,被指定为目标的图像不满足图形用户界面的任何部分,则能够从该组图像中选择不同的图像。如果该图像满足图形用户界面的一部分,则该输入事件可在图形用户界面的该部分处被重放。在一些实施方式中,该图像还可被指定为输入事件的目标。如果该图像不满足图形用户界面的任何部分,则来自该组图像的又另一个图像能够被选择。该过程可被重复直至满足(或匹配)图形用户界面的一部分的图像被找到,或者该组图像中的所有图像都已经被选择。
图1是根据一种实施方式的执行输入事件的过程的流程图。过程100可例如在如图7或图8中图示的基于图像的应用自动化系统之类的基于图像的应用自动化系统中被执行或托管。基于图像的应用自动化系统实施过程100,在块110处确定:图形用户界面(GUI)未被与输入事件关联或相关的第一图像所满足。换言之,基于图像的应用自动化系统确定GUI不包括与第一图像相匹配的任何部分。
如此处所使用的,术语“图像”意思是某一主题(例如,GUI、GUI的一部分,或GUI元素)的表示,其基于该主题的视觉外观。另外,主题的图像的拷贝或变换(例如,改变的颜色空间、尺寸、宽高比或比率)也是该主题的图像。
另外,如此处所使用的,如果图像包括GUI的一部分的表示,则该图像被称为满足(或匹配)GUI的该部分。换言之,如果图像包括GUI的一部分,则该图像满足GUI的该部分。与GUI的该部分自身相比,包括在该图像中的GUI的该部分(或其表示)能够具有不同的颜色方案(例如,灰度级而不是彩色),不同的比例,不同的尺度(具有不同的尺寸),或具有图像中的其它视觉变化,尽管如此,该图像也被称为满足GUI的该部分(或满足该GUI)。例如,基于图像的应用自动化系统能够使用图像处理技术,例如边缘检测、文本或符号识别、汉明距离估计、像素值比较、尺寸重置、特征比较、和/或其它方法来比较图像和GUI的一部分(或者表示该GUI的该部分的另一图像)以便确定该第一图像不满足该GUI的任何部分。
出于很多原因,该第一图像不能满足GUI的任何部分。例如,该第一图像可包括在处于第一状态的一GUI元素,例如当光标(例如,鼠标指针)在该GUI元素之上悬停时的视觉外观。当在基于图像的应用自动化系统中,块110被处理时,该GUI元素可以处于不同的状态。例如,该光标可以在不同的GUI元素之上悬停。相应地,该第一图像不满足该GUI元素,这是因为第一图像中的该GUI元素的视觉外观不与此刻该GUI处的该GUI元素的视觉外观相匹配。
响应于块110,在块120,基于图像的应用自动化系统选择与该输入事件相关的第二图像。例如,基于图像的应用自动化系统可基于图像之中的优先级;基于规则、参数或偏好;或使用用来选择第二图像的其它方法来从与输入事件相关联的一组图像中选择第二图像。例如,每个图像可具有相关联的时间戳(例如,绝对时间或相对于在图像被产生或捕捉的输入事件时间的时间),并且该第一图像可被指定为输入事件的目标。基于图像的应用自动化系统可在第一图像之前或之后(时间上)立即从该组图像中选择图像作为第二图像。
在一些实施方式中,基于图像的应用自动化系统独立于用户输入而选择第二图像。如此处使用的,术语“独立于用户输入”,“独立于用户”,以及类似的术语或短语,意思是动作是响应于不同于用户输入的刺激而发生。此处,例如,该刺激是确定第一图像不满足该GUI的一部分。
换言之,基于图像的应用自动化系统在块110确定第一图像不满足该GUI,并且继续在块120处选择第二图像而不需要实时的(例如,在块110和120之间接收的,或作为块120的一部分的)用户输入。这并不是暗示先前的用户输入并不或不能影响第二图像的选择。例如,基于图像的应用自动化系统可选择基于更早的用户输入所选择的图像,例如,建立用来选择第二图像的与该输入事件相关联的一组图像之中的优先级、或规则、参数或偏好的用户输入。从而,尽管选择标准可被用户输入所规定,由基于图像的应用自动化系统所做的选择是独立于用户输入的。
在第二图像被选择之后,在块130处,由第二图像所满足的该GUI的一部分被识别。换言之,使用图像分析技术或方法,例如上文讨论的与块110相关的那些技术或方法,基于图像的应用自动化系统识别第二图像所满足的该GUI的一部分。
例如,如上文所述,该第一图像可包括处于第一状态的GUI元素,并且当块110被执行时,该GUI元素可处于第二状态。该第二图像可包括处于第二状态的该GUI元素。换言之,第一图像可包括处于一种状态的该GUI元素(或GUI的一部分),并且第二图像可包括处于另一状态的该GUI元素。相应地,与输入事件相关联的图像均可包括GUI元素(或GUI的一部分),在其处,将在一种或多种状态下执行输入事件。从而,基于图像的应用自动化系统可使用这些图像来识别该GUI元素,例如,即使该GUI元素具有多种可能的状态。
然后在块130中所识别的GUI的该部分处,该输入事件在块140被执行。换言之,与包括第一图像和第二图像的一组图像相关联的该输入事件相对于在块130所识别的GUI的该部分被执行。
使用多种方法,输入事件可在(或相对于)GUI的一部分被执行。例如,基于图像的应用自动化系统可请求输入事件的模拟或触发,例如鼠标按键点击事件、键按下事件、手势事件或在托管其处实施该GUI的应用的操作系统处的某其它输入事件。作为另一个例子,基于图像的应用自动化系统可以在例如Microsoft Remote Desktop ConnectionTM(RDC)或虚拟网络计算(VNC)的桌面共享系统或应用中,通过向桌面共享系统(例如,向桌面共享系统的服务器应用)发送命令或指令来触发输入事件。作为又一个例子,基于图像的应用自动化系统可以向用于操作系统或其处实施该GUI的应用的输入事件队列中注入表示输入事件的命令、信号或数据集。
图1图示的过程100是示例实施方式。在其它实施方式中,过程100可包括另外的和/或不同的块/步骤。例如,过程100可包括位于块130和140之间的转换块,在其中相对于基于图像的应用自动化系统的GUI的坐标系统被转换为相对于例如其处托管实施该GUI的应用的操作系统的坐标系统。作为特定示例,基于图像的应用自动化系统可通过桌面共享系统来访问GUI,并且可通过桌面共享系统访问的GUI的分辨率可相对于该GUI的实际分辨率被降低。基于图像的应用自动化系统可以将其处应执行该输入事件的位置(例如,笛卡儿坐标位置)从由通过桌面共享系统所访问的GUI的分辨率所定义的空间变换或映射(例如,使用线性变换)为由GUI的实际分辨率所定义的空间。
图2是根据一种实施方式的将输入事件与一组图像关联的过程的流程图。在块210处检测输入事件。输入事件是发生在诸如计算设备之类的系统处的输入。例如,输入事件的生成可例如基于:诸如鼠标指针的输入设备的移动;与触控板、触摸敏感显示屏或接近敏感设备的交互(例如,触摸、在其处执行手势或相对其的移动);鼠标或键盘按键动作(例如,鼠标按键的压下或释放);或其它输入,例如来自运动敏感设备(如,加速计或陀螺仪)或音频输入设备(如,麦克风)的输入。
这样的输入事件经常相对于图形用户界面(GUI)或图形用户界面的元素(GUI元素)被执行。例如,用户可以与GUI元素交互(例如,使用鼠标或触摸敏感设备在GUI元素上点击)来生成相对于该GUI元素的输入事件。作为另一个例子,GUI元素可以具有或可以是GUI的输入焦点(例如,响应于该GUI元素的先前用户选择),并且在GUI具有所述输入焦点时发生的或被检测的输入事件是相对于该GUI元素。相应地,输入事件可被称为相对于、发生在在GUI的各部分或GUI的各元素或在GUI的各部分或GUI的各元素处被执行。
GUI是用户界面,其允许用户使用对象的图形表示而不是文本命令来与系统(例如,计算设备)交互。例如,用户可以将光标移动到按键的图形表示,并且使用鼠标或触摸敏感设备按下和释放该按键的图形表示。
这样的图形表示在比被称为图形用户界面元素(或GUI元素)。GUI元素是GUI的一部分,在这里,用户可以向GUI提供输入。例如,GUI元素可以是控件,例如按钮或按键、单选按键、复选框、文本字段或框、下拉列表、微调器(微调控件)、滑动条、图标、树控件、滚动条、超级链接、或其它控件。作为另一个例子,GUI元素可以是GUI容器,其包括其它的GUI元素,例如窗口、视窗、对话框、框架、选项卡、菜单或某其它容器。
经常地,坐标系统(例如笛卡尔坐标系统)与GUI相关联。例如,GUI的左上角可以被指定为原点并且使用数组(0,0)来描述。GUI的每个点(经常对应于输出该GUI的诸如计算机监控器之类的显示器的每个像素)然后可以使用相对于原点的坐标来描述。例如,对于在具有像素分辨率为2920×2080的计算机监控器上显示的GUI,GUI左上角的点被描述为(0,0),GUI左下角的点被描述为(0,2080),GUI右上角的点被描述为(1920,0),并且GUI右下角的点被描述为(1920,2080)。相应地,输入事件可包括输入事件所发生于的GUI的位置(或多个位置)的描述。例如,光标移动的输入事件可指定一个坐标集,其指示移动从何处开始(例如,在移动之前的光标位置),以及另一坐标集合,其指示该移动在何处停止。
基于图像的应用自动化系统实施过程200可以在块210处使用多种方法来检测输入事件。例如,基于图像的应用自动化系统可以向操作系统注册(例如,使用操作系统的应用编程接口(API))以接收通知或信号,例如,系统信号、函数调用、或包括输入事件的描述的方法调用(例如,输入事件的分类类型标识符,例如键盘的哪个按键被按下的输入事件的描述,和/或输入事件的位置)。作为另一个例子,当外围设备(例如,鼠标,诸如触控板之类的触摸或接近敏感设备,实体键盘,或诸如屏幕上键盘之类的虚拟键盘)向计算设备提供信号或通知以指示输入事件已经在那些外围设备处发生时,基于图像的应用自动化系统可以与一个或多个设备驱动器通信来接收通知或信号。作为再一个例子,基于图像的应用自动化系统可以指示操作系统(例如,钩挂(hook)操作系统的输入事件处理例程或提供设备驱动器)来截获与输入事件相关的并且由操作系统或设备驱动器所生成的通知或信号。
在输入事件在块210处被检测后,在块220处将多个图像与输入事件相关联。换言之,基于图像的应用自动化系统实施过程200定义或建立输入事件与两个或更多图像之间的关系。例如,输入事件的描述和将与输入事件相关联的每个图像的标识符(例如,统一资源标识符(URI)、文件系统路径、或文件名)可被存储在自动化动作。自动化动作表示在重放阶段期间将被重放的输入事件。作为例子,自动化动作可被表示为或存储为脚本文件、扩展标记语言(XML)元素或XML元素组、或基于图像的应用自动化系统处的数据结构的一部分。自动化动作例如在图5中被更详细地讨论。
在一些实施方式中,与输入事件相关联的图像在记录阶段期间在不同时间按时间顺序生成,或以这样的图像为基础。例如,基于图像的应用自动化系统实施过程200能生成GUI的图像(例如,执行抓屏或相对于GUI的屏幕快照),例如以每隔一秒或每300毫秒的间隔来生成。可替换地,例如,基于图像的应用自动化系统实施过程200可以响应于诸如移动输入事件之类的输入事件而生成GUI的图像。
在一些实施方式中,在记录阶段期间生成的每个图像由基于图像的应用自动化系统所缓存或归档。在一些实施方式中,基于图像的应用自动化系统实施过程200包括固定长度队列,其中存储了最近生成的图像。另外,在一些实施方式中,基于图像的应用自动化系统实施过程200还响应于在块210处检测的输入事件而生成GUI的图像。另外,基于图像的应用自动化系统实施过程200在输入事件被检测到之后能继续生成GUI的图像。
与输入事件相关联的图像的数量可根据不同的实施方式而变化,基于例如输入事件的类型或分类、用户定义或可配置的参数、预定义的参数或其它标准。另外,与输入事件相关联的图像包括其处执行该输入事件的GUI的部分或GUI元素。另外,如上所述,与输入事件相关联的图像可包括处于不同状态的GUI的部分或GUI元素。另外,与输入事件相关联的图像可以以输入事件的发生位置为中心。更具体地,例如,基于图像的应用自动化系统能够基于包括在该输入事件或先前输入事件的描述中的位置信息来识别输入事件在GUI处的位置。
基于图像的应用自动化系统然后可以生成将与输入事件相关联的一组图像。例如,基于图像的应用自动化系统能识别围绕该位置的GUI的一部分或GUI元素。作为特定例子,使用边缘检测或其它图像处理分析方法,基于图像的应用自动化系统能够识别包括或围绕该位置的GUI元素。作为另一个例子,通过定义包括该位置或以该位置为中心的矩形、椭圆、多边形或其它形状,基于图像的应用自动化系统能够识别GUI的一部分。基于图像的应用自动化系统然后可以生成包括GUI的该部分或GUI元素的一组图像,例如,通过:访问在该输入事件之前被捕捉的两个图像、响应于该输入事件而被捕捉的图像、以及在输入事件之后被捕捉的图像;生成这些图像的拷贝;以及围绕所识别的GUI部分或GUI元素来裁减图像拷贝(例如,基于为每个图像适当缩放的GUI的坐标系统)。裁减的图像然后可与上述输入事件相关联,和/或存储在数据库中。
如上所述,根据多个实施方式,图像拷贝可被裁减为具有多个维度或形状。另外,图像拷贝可围绕一位置(或点)而不是输入事件的位置来被裁减。换言之,裁减的图像拷贝能够以GUI的一位置而不是输入事件的位置为中心。在这样的实施方式中,基于图像的应用自动化系统在重放阶段期间,在适当偏离这样的图像的中心的一位置处重放输入事件,从而使得该输入事件在与记录阶段期间该输入事件的发生位置相同的位置处被重放。如在此使用的,第二位置与第一位置相同,如果第二位置与第一位置相同或者与第一位置足够相似或接近而使得在GUI或GUI元素处第二位置的输入事件与第一位置的该输入事件将具有相同的效果的话。
来自在块220处与输入事件相关联的图像中的一图像然后在块230处被指定为输入事件的目标。输入事件的目标是在重放阶段期间应当被使用来识别GUI的该部分的图像,其中与该图像相关联的输入事件应当针对GUI的该部分被应用或执行。
该目标可使用多种方法被指定。例如,响应于输入事件而生成的图像可通过在用于该输入事件的自动化动作处在与输入事件相关联的图像列表中首先列出该图像的标识符而被指定为输入事件的目标。在其它实施方式中,自动化动作可包括一字段,在该处作为输入事件的目标的图像的标识符(例如,输入事件标识符)可被包括在内。作为再一例子,可以为作为输入事件的目标的图像设置目标标记或属性,并且对于与输入事件相关联的每个其它图像可重置目标标记或属性。
另外,被指定为输入事件的目标的图像可基于多种方法而被选择。例如,在输入事件之后生成的图像可被指定为目标。作为另一例子,响应于输入事件而被生成的图像可被指定为目标。作为再一例子,在输入事件之前或之后预定的秒数或毫秒数所生成的图像可被指定为目标。
图2中图示的过程200是示例性实施方式。在其它实施方式中,这样的过程可包括另外的块和步骤。例如,在一些实施方式中,过程200可包括另外的块,在其中包括或识别输入事件以及相关联图像的自动化动作被定义。另外,块210和220可针对一组输入事件中的每个输入事件而被重复。另外,在一些实施方式中,输入事件可在不与图像相关联的情况下被检测。例如,一些输入事件,例如来自键盘的输入的输入事件(例如,键盘敲击)被应用于具有或者作为GUI的当前输入焦点的GUI的一部分或GUI元素,并且重放这样的输入事件的基于图像的应用自动化系统从而不需要识别GUI的该部分或该GUI元素来重放这样的输入事件。
图3A、3B和3C是根据一种实施方式的具有分别处于第一状态、第二状态、第三状态的图形用户界面元素的图形用户界面的一部分。窗口310是GUI元素,包括按键(GUI元素)315和316。尽管GUI元素在图3A、3B和3C图示的示例中是按键,但是其它GUI元素在其它实施方式中可被使用。光标320是例如鼠标指针的光标,用户通过光标能够与窗口310、按键315和/或按键316交互。
按键315具有多种状态,包括图3A所示的第一状态、图3B所示的第二状态、和图3C所示的第三状态。按键315的状态是按键315的不同视觉外观,并且被用于(例如,向用户)提供按键315的当前状态的指示。在图3A、3B和3C图示的示例中,当光标320没有与按键315交互时(图3A),按键315处于第一状态,当光标320悬停在或位于按键315时(图3B),按键315处于第二状态,以及鼠标按键按下事件发生并且光标320悬停在按键315时(图3C)是处于第三状态。
如上所述,因为与哪些自动化动作将被重放(或者在那些自动化动作中指定的输入事件被指定)相关的应用的GUI元素的状态(或视觉表示)可以在该应用执行期间改变,基于图像的应用自动化系统将不能识别其处应重放自动化动作的该应用的一部分(使用GUI输出),这是因为在该自动化动作中指定的图像包括处于一种状态的该应用的该部分,但是该应用的该部分当前(即,当该自动化动作应当被重放时)处于不同的状态。
根据在此讨论的各实施方式的基于图像的应用自动化系统在记录阶段期间能够生成GUI(或其部分)的多个图像。例如,这样的基于图像的应用自动化系统能够通过周期性捕捉包括窗口310的应用的快照或者通过响应于诸如移动输入事件之类的输入事件而捕捉快照来生成窗口310的一组图像(其包括处于第一状态的按键315的至少一个图像,以及处于第二状态的按键315的至少一个图像)。另外,基于图像的应用自动化系统能够当鼠标按下事件发生在按键315时(例如,光标320悬停在按键315处)检测输入事件,并且响应于该输入事件而生成包括处于第三状态的按键315的图像。
另外,响应于输入事件,基于图像的应用自动化系统能够裁减来自那些围绕输入事件位置的图像中的图像(例如,每个图像,或图像的子集,例如包括每隔一个的图像或每第n个图像)。例如,来自托管该应用的计算设备的操作系统的通知能够向基于图像的应用自动化系统提供包括该输入事件的坐标的通知。基于图像的应用自动化系统然后能够裁减图像来生成与输入事件相关的GUI元素的第二组图像,并且能将第二组图像与输入事件相关联(例如,在自动化动作中)。
图4A、4B和4C是根据一种实施方式的分别包括处于图3A、3B和3C图示的状态的按键315的图像的图示。换言之,图4A、4B和4C图示了如上所述的与输入事件关联的第二组图像。图像410包括处于第一状态的按键315以及窗口310的一部分。类似地,图像420包括处于第二状态的按键315以及窗口310的一部分,并且图像430包括处于第三状态的按键315以及窗口310的一部分。在图4A、4B和4C图示的示例中,当输入事件被检测(例如,在被托管该应用的计算设备的操作系统识别为输入事件位置的位置处)时每个图像410、420及430的中心大体上或基本上位于光标320的位置。
图5是根据一种实施方式的自动化动作的图示。如上所述,自动化动作表示将在重放阶段期间被重放的输入事件。作为示例,自动化动作可被表示为或存储为脚本文件、扩展标记语言(XML)文档中的XML元素或XML元素组、或可被基于图像的应用自动化系统访问的存储器中的数据结构的一部分。
自动化动作500包括上述与图3A、3B、3C、4A、4B和4C相关的图像410、420和430。在一些实施方式中,自动化动作包括对图像410、420和430的引用(例如,图像410、420和430的URI或文件系统路径)而不是图像本身。例如,图像410、420和430可被存储在数据库或其它数据存储装置中,并且自动化动作可被表示为XML文档。因此,基于图像的应用自动化系统可以解释XML文档,并且使用被包括在自动化动作500中的对图像410、420和430的引用,来访问数据库中的图像410、420和430。
输入事件标识符520标识与自动化动作500关联的输入事件。换言之,输入事件标识符520标识与图像410、420和430关联的输入事件。输入事件标识符520可以是例如从其它输入事件中唯一地标识一输入事件的标识符。更具体地,例如,唯一标识符可以关联到或被分配到输入事件的每一类型或分类,并且与自动化动作500关联的输入事件的类型的唯一标识符被作为输入事件标识符520而使用。
除了图像(或对图像的引用),自动化动作500还包括目标标识符530。目标标识符530是与自动化动作500关联的输入事件的目标的标识符或对该目标的引用(或者对被指定为目标的图像的引用)。如图5所示,目标标识符530引用或标识图像430。在一些实施方式中,基于图像的应用自动化系统可以修改或更新目标标识符530来引用或标识例如图像420或410的另一图像。
图6是根据一种实施方式的将图像指定为输入事件的目标的过程的流程图。基于图像的应用自动化系统实施过程600在块610处识别被指定为输入事件的目标的图像。例如,基于图像的应用自动化系统能够访问存储在存储器的自动化动作中的目标标识符,以及访问该目标标识符所引用的图像。在其它实施方式中,基于图像的应用自动化系统能够访问与存储在存储器中所存储的自动化动作中(或被其引用)的图像相关联的元数据来确定哪个图像被指定为输入事件的目标。换言之,与图像相关联的元数据可以包括将该图像指定作为输入事件目标的信息。
基于图像的应用自动化系统然后在块620确定该图像是否满足GUI的一部分。例如,使用传统的基于图像的应用自动化系统中的图像分析技术或方法,基于图像的应用自动化系统实施过程600能够确定该图像是否满足GUI的任何部分。作为特定例子,使用图像分析技术或方法,例如上述与图1的块110中相关的那些,基于图像的应用自动化系统能够访问GUI的图像或其它表示,并且将在块610处被识别的图像与GUI的该图像或表示相比较。
如果GUI的一部分被该图像满足,在块650处,在GUI的该部分处执行输入事件。例如,在包括目标标识符的自动化动作中,由输入事件标识符所标识或描述的输入事件被用于在块610处识别该图像。
如果在块610处识别的图像没有在块620处满足GUI的任何部分,则在块630处选择另一图像。即,过程600可被基于图像的应用自动化系统相对于包括目标标识符、输入事件标识符、以及一组图像(或对图像的引用)的自动化动作来执行。来自这些图像的第一图像可以被识别为由输入事件标识符所标识的输入事件的目标,并且在块630处可从这些图像中选择另一图像。
根据多种方法中的任何一种,在块630处该图像可被选择。例如,如上所述,该图像可基于图像之中的优先级;基于规则、参数或偏好;或使用其它方法来选择。作为特定例子,可根据与这些图像中的每一个相关的时间戳来从这些图像中选择图像。
如上所述,在一些实施方式中,在块630处被选择的图像独立于用户输入。换言之,基于图像的应用自动化系统可以在块630处选择图像,而不需要来自用户的做出选择的指示。
在图像在块630处被选择之后,该图像在块640处被指定为输入事件的目标。例如,表示输入事件并且包含在610处被识别的图像和在块630处被选择的图像的自动化动作的目标标识符可被修改或更新来引用在块630处被选择的图像。换言之,该目标标识符可被更新来将在块630处选择的图像指定作为输入事件的目标。在其它实施方式中,涉及与输入事件相关联的图像的元数据可被修改来将在块630处选择的图像指定作为输入事件的目标。过程600然后继续到块620来确定在块630处选择的图像是否满足GUI的任何部分。
如图6所示,块620、630和640可针对与输入事件相关联的一组图像(例如,包括在自动化动作中或由自动化动作引用的一组图像)而被重复。如果没有来自该组图像的图像满足GUI的任何部分,过程600可以完成。在一些实施方式中,基于图像的应用自动化系统实施过程600可以向用户提供失败或错误通知(例如,在显示器上、通过电子邮件消息、通过短消息服务(SMS)消息、通过即时消息、或通过某其它方法)。
图6示出的过程600是示例性实施方式。在其它实施方式中,另外的、更少的或重布置的块或步骤都可包括在过程600中。例如,块640可被移动到块650之后或之前。换言之,在基于图像的应用自动化系统已经确定该图像满足了GUI的一部分后,该图像可被指定为输入事件的目标。
另外,在一些实施方式中,自动化动作在过程600的单独执行或调用中,可被多次操纵或处理。例如,在应用的首次自动化测试期间,包含与输入事件相关的图像的自动化动作可在过程600的一次调用期间被处理。在该自动化测试期间,该自动化动作的目标标识符可如上所述的那样被修改,例如,因为应针对其执行输入事件的GUI元素处于与由被指定为目标的图像所表示的该GUI元素的状态不同的状态。在应用的第二次另外的自动化测试期间,该自动化动作然后在过程600的后续调用中可被再次处理。在该另外的自动化测试期间,该自动化动作的目标标识符可被再次修改。例如,如果当前指定为目标的图像不满足GUI的任何部分的话,该目标标识符可被修改来将不同的图像指定作为与该自动化动作相关联的输入事件的目标。在其它实施方式中,如果当前指定为目标的图像不满足GUI的任何部分,该不同图像可被用于识别应该在其处执行输入事件的GUI的一部分(即,该不同图像所满足的GUI的一部分),但该不同图像不被指定为输入事件的目标。
图7是根据一种实施方式的基于图像的应用自动化系统的示意框图。基于图像的应用自动化系统包括选择模块710、分析模块720、事件模块730以及重放模块740。尽管关于图7和8以及其它示例实施方式阐释并讨论了多种模块(即,软件及硬件的组合),但这些模块的其它组合或子组合可被包括在其它实施方式中。换言之,尽管图7和8阐释的以及在其它示例实施方式中讨论的这些模块在此处讨论的示例中执行特定功能,但是这些以及其它功能可以以不同的模块或模块组合来完成、实施或实现。例如,图示或/或讨论为分离模块的两个或更多的模块可被组合一个模块,该模块执行关于该两个模块所讨论的功能。作为另一个例子,关于这些示例所讨论的在一个模块上执行的的功能可在一个或多个不同模块上执行。
选择模块710访问来自与输入事件相关联的一组图像中的一个或多个图像。例如,选择模块710可以基于在自动化动作中指定的目标标识符来选择被指定为输入事件的目标的图像。再如,选择模块710可以响应于确定来自该组图像的第一图像不满足GUI的任何部分(例如,通过分析模块720)而从该组图像中选择第二图像。选择模块710能访问与图像之中的优先级和/或用于在图像之中选择图像的规则、参数或偏好相关的信息。另外,如上所述,上述选择模块710能够独立于用户输入而选择图像。即,例如,选择模块710能够响应于来自分析模块720的信号而选择图像,而不是响应于用户输入。
分析模块720访问GUI的图像或其它表示并确定图像(例如,在选择模块710选择或识别的图像)是否满足该GUI的任何部分。例如,分析模块720能使用多种图像分析技术或方法中的任何一种(例如在传统的基于图像的应用自动化系统中使用的那些)来确定图像是否满足GUI的任何部分。
另外,分析模块720与选择模块710通信(例如,交换数据或表示数据的信号)以接收来自选择模块710的图像(或对图像的引用),并且向选择模块710提供信号或命令来从与输入事件相关的一组图像中选择另外的(例如,第二、第三、第四等)图像。另外,分析模块720能够指定在块710处选择的图像作为输入事件的目标。例如,分析模块720能够指定图像作为输入事件的目标,如果该图像满足GUI并且当前指定为输入事件的目标的图像并不满足该GUI。
事件模块730在与该输入事件相关联的图像所满足的GUI的一部分处执行输入事件。换言之,事件模块730生成或请求该输入事件向GUI提供该输入事件。作为例子,事件模块730能请求对输入事件的模拟或触发,例如鼠标按键点击事件、键按下事件、手势事件或在托管其处实施该GUI的应用的操作系统处的某其它输入事件。作为另一个例子,事件模块730可以在例如MicrosoftRemote Desktop ConnectionTM(RDC)或虚拟网络计算(VNC)的桌面共享系统或应用中,通过向桌面共享系统(例如,向桌面共享系统的服务器应用)发送命令或指令来触发输入事件。作为再一个例子,事件模块730可以向用于操作系统或其处实施该GUI的应用的输入事件队列中注入表示输入事件的命令、信号或数据集。
如图7所示,在一些实施方式中,基于图像的应用自动化系统包括重放模块740。重放模块访问自动化动作,并且向选择模块710、分析模块720和事件模块730提供来自这些自动化动作的数据或信息。换言之,重放模块740能够调整基于图像的应用自动化系统700的重放阶段。
作为特定例子,基于图像的应用自动化系统700可以重放脚本文件来使定义GUI的应用的测试自动化。重放模块740能够访问包含一组自动化动作的脚本文件,并且向选择模块710、分析模块720和事件模块730提供来自这些自动化动作的信息以执行该自动化测试。作为特定例子,重放模块740能够顺序地访问脚本文件中的自动化动作,并且向选择模块710及分析模块720提供目标标识符和图像(或对图像的引用)。另外,重放模块740能够向事件模块730提供输入事件标识符,并且事件模块730能够执行由这些输入事件标识符所标识的输入事件。
图8是根据一种实施方式的托管基于图像的应用自动化系统的计算设备的示意框图。在图8的示例中,计算设备800包括处理器810、通信接口820和存储器830,并且托管操作系统831、选择模块710、分析模块720、事件模块730和应用835。
处理器810是执行或解释指令、代码或信号的硬件及软件的任意组合。例如,处理器810可以是微处理器、专用集成电路(ASIC)、例如处理器或计算装置集群或网络的分布式处理器、多核或多处理器式处理器、或虚拟机的虚拟或逻辑处理器。
通信接口820是一模块,通过它处理器810能够通过通信链路与其它处理器或计算设备进行通信。例如,通信接口820可包括网络接口卡和在处理器810处托管的通信协议堆栈(例如,存储在存储器830并在处理器810执行和解释来实现网络协议的指令或代码)。作为特定示例,通信接口820可以是有线接口、无线接口、以太网接口、光纤通道接口、无限带宽接口、以及IEEE802.11接口,或某其它通信接口,通过它们处理器810能够交换表示数据的信号或符号以与其它处理器或计算设备进行通信。
存储器830是存储指令、代码、数据或其它信息的处理器可读介质。如此处所使用的,处理器可读介质是存储指令、代码、数据或其它非暂时性信息的任何介质,并且可以直接或间接地被处理器访问。换言之,处理器可读介质是非暂时性介质,处理器可在其中访问指令、代码、数据或其它信息。例如,存储器830可以是易失性随机访问存储器(RAM)、例如硬盘驱动或固态驱动的永久数据存储器、压缩盘(CD),数字视频盘(DVD)、Secure DigitalTM(SD)、多媒体卡(MMC)、CompactFlashTM(CF)或其组合,或其它存储器。换言之,存储器830可被表示为多种处理器可读介质。在一些实施方式中,存储器830可以与处理器810集成,与处理器810分离,或位于计算设备800的外部。
存储器830包括当在处理器810中执行时实现操作系统831、操作系统831、选择模块710、分析模块720、事件模块730和应用835的指令或代码。换言之,操作系统831,包括选择模块710、分析模块720和事件模块730的基于图像的应用自动化系统、以及应用835都托管在计算设备800处。
在图8所图示的示例中,应用835是包括选择模块710、分析模块720和事件模块730的基于图像的应用自动化系统能够重放自动化动作来实现程序的自动化的应用。在其它实施方式中,应用835被托管在不同计算设备中,并且包括选择模块710、分析模块720和事件模块730的基于图像的应用自动化系统,通过通信链路,使用例如通信接口820和桌面共享系统,能够在该应用中重放表示输入事件的自动化动作来实现某一程序的自动化。
在一些实施方式中,计算设备800可以是虚拟化的计算设备。例如,计算设备800可作为计算服务器处的虚拟机来托管。另外,在一些实施方式中,计算设备800可以是虚拟化计算装置,并且操作系统831是最小的或刚够用的操作系统以支持(例如,提供诸如通信协议栈之类的服务以及对计算设备800的诸如通信接口820之类的部件的访问)选择模块710、分析模块720、事件模块730和应用835。
从多种存储器或处理器可读介质上,选择模块710、分析模块720和事件模块730能够被计算设备800访问或安装。例如,计算设备800能够通过通信接口820在远程处理器可读介质处访问事件选择模块710、分析模块720和事件模块730。作为特定示例,计算设备800可以是瘦客户端,在启动序列期间,其访问操作系统831、选择模块710、分析模块720、事件模块730和应用835。
作为另一例子,计算设备800可包括(图8未示出)处理器可读介质访问设备(例如,CD、DVD、SD、MMC或CF驱动器或读取器),并且可通过该处理器可读介质访问设备在处理器可读介质上访问选择模块710、分析模块720和事件模块730。作为更具体的示例,该处理器可读介质访问设备可以是DVD驱动器,在其中可访问包括选择模块710、分析模块720和事件模块730中的一个或多个的安装包的DVD。该安装包能够在处理器810被执行或解释来在计算设备800中(例如,在存储器800中)安装选择模块710、分析模块720和事件模块730中的一个或多个。计算设备800然后能够托管或执行选择模块710、分析模块720和事件模块730。
在一些实施方式中,选择模块710、分析模块720和事件模块730可从多个源、位置或资源中访问或安装。例如,选择模块710、分析模块720和事件模块730的一些部件可通过通信链路而被安装,并且选择模块710、分析模块720和事件模块730的其它部件可从DVD安装。
在其它实施方式中,选择模块710、分析模块720和事件模块730可分布于多个计算设备中。即,选择模块710、分析模块720和事件模块730的一些部件可被托管在一个计算设备,而选择模块710、分析模块720和事件模块730的其它部件可被托管在另一计算设备。作为特定示例,选择模块710、分析模块720和事件模块730可被托管在一计算设备集群中,其中选择模块710、分析模块720和事件模块730中的每一个都被托管在多个计算设备,并且没有单个计算设备托管选择模块710、分析模块720和事件模块730中的每一个。
尽管特定实施方式在上文中被示出和描述,但可做出多种形式和细节的变化。例如,关于一种实施方式和/或过程所描述的一些特征能被关联到其它实施方式。换言之,关于一种实施方式所描述的过程、特征、部件和/或属性在其它实施方式中也是有用的。作为再一例子,以上关于特定模块或元件所描述的功能可被包括在其它实施方式的不同的模块、引擎或元件中。进一步地,应当理解,此处描述的系统,设备和方法可包括所描述的不同实施方式的部件和/或特征的多种组合和/或子组合。因此,参照一个或多个实施方式而描述的特征能与此处描述的其它实施方式组合。
如此处所使用的,术语“模块”是指硬件(例如,如集成电路或其它电路的处理器)和软件(例如,机器或处理器可执行的指令、命令或代码,如固件、编程或目标代码)的组合。硬件和软件的组合可包括仅硬件(即,没有软件元件的硬件元件)、托管在硬件上的软件(例如,存储在存储器中并且在处理器执行或解释的软件)、或硬件和托管在硬件上的软件。
另外,如此处所使用的,单数形式的“一个”,“一”和“该”包括复数个指代物,除非上下文明确指明要排除。因此,作为示例,术语“模块”旨在表达的意思是一个或多个模块,或模块的组合。进而,此处使用的术语“提供”包括推送机制(例如,通过通信路径或通道向扫描仪发送接口描述),拉取机制(例如,响应于来自扫描仪的请求而向扫描仪传送接口描述),以及存储机制(例如,在其处扫描仪可访问接口描述的数据库或服务中存储该接口描述)。进一步地,如此处所使用的,术语“基于”包括至少部分基于。因此,被描述为基于一些原因的特征可仅仅基于该原因或基于该原因及一个或多个其它原因。

Claims (15)

1.一种处理器可读介质,存储表示指令的代码,当所述指令在处理器被执行时使得处理器:
在第一时间确定,来自与输入事件相关联的多个图像中的第一图像不满足图形用户界面的任何部分;
独立于用户输入,在第一时间之后的第二时间从所述多个图像中选择第二图像;
识别该第二图像所满足的图形用户界面的一部分;以及
独立于用户输入,在该图形用户界面的该部分处执行该输入事件。
2.如权利要求1的处理器可读介质,其中该第一图像在该第一时间被指定作为该输入事件的目标,该处理器可读介质进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
在该第二时间之后,将该第二图像指定作为该输入事件的目标。
3.如权利要求1的处理器可读介质,进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
在该第一时间之前确定该第一图像是该输入事件的目标。
4.如权利要求1的处理器可读介质,其中所述多个图像、该输入事件、以及该输入事件的目标在存储于该处理器可访问的存储器的自动化动作中被标识。
5.如权利要求1的处理器可读介质,其中所述多个图像、该输入事件、以及该输入事件的目标在自动化动作中被标识,该处理器可读介质进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
修改该自动化动作使得该第二图像为该输入事件的目标。
6.如权利要求1的处理器可读介质,其中:
该第一图像包括处于第一状态的图形用户界面元素;以及
该第二图像包括处于第二状态的该图形用户界面元素。
7.一种基于图像的应用自动化系统,包括:
选择模块,访问来自与输入事件相关联的多个图像中的图像;
分析模块,确定该图像是否满足图形用户界面的一部分;以及
事件模块,在该图像满足该图形用户界面的一部分的情况下在图形用户界面的该部分处执行该输入事件。
8.如权利要求7的系统,其中:
来自所述多个图像中的该图像是第一图像;
该选择模块被配置为,独立于用户输入,在该分析模块确定该第一图像不满足该图形用户界面的一部分的情况下,访问来自所述多个图像中的第二图像;
该分析模块被配置为确定该第二图像满足该图形用户界面的一部分;并且
该事件模块被配置为,在该第二图像所满足的该图形用户界面的该部分处执行该输入事件。
9.如权利要求7的系统,其中:
来自所述多个图像中的该图像是第一图像;
该选择模块响应于确定该第一图像是该输入事件的目标而访问该第一图像;
该选择模块被配置为,独立于用户输入,在该分析模块确定该第一图像不满足该图形用户界面的一部分的情况下,访问来自所述多个图像中的第二图像;
该分析模块被配置为确定该第二图像满足该图形用户界面的一部分;并且
该事件模块被配置为在该第二图像所满足的该图形用户界面的该部分处执行该输入事件。
10.如权利要求7的系统,其中:
来自所述多个图像中的该图像是第一图像;
该选择模块响应于确定该第一图像被指定作为该输入事件的目标而访问该第一图像;
该选择模块被配置为,独立于用户输入,在该分析模块确定该第一图像不满足该图形用户界面的一部分的情况下,访问来自所述多个图像中的第二图像并将该第二图像指定作为该输入事件的目标;
该分析模块被配置为确定该第二图像满足该图形用户界面的一部分;并且
该事件模块被配置为在该第二图像所满足的该图形用户界面的该部分处执行该输入事件。
11.一种处理器可读介质,存储表示指令的代码,当所述指令在处理器被执行时使得处理器:
识别来自与输入事件相关联的多个图像中的第一图像,该第一图像被指定为该输入事件的目标;
确定该第一图像不满足图形用户界面的任何部分;
确定来自所述多个图像中的第二图像满足该图形用户界面的一部分;以及
独立于用户输入,将该第二图像指定作为该输入事件的目标。
12.如权利要求11的处理器可读介质,进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
独立于用户输入,在该图形用户界面的该部分处执行该输入事件。
13.如权利要求11的处理器可读介质,其中:
该第一图像包括处于第一状态的图形用户界面元素;以及
该第二图像包括处于第二状态的该图形用户界面元素。
14.如权利要求11的处理器可读介质,其中所述多个图像、该输入事件、以及该输入事件的目标在存储于该处理器可访问的存储器的自动化动作中被标识,该处理器可读介质进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
修改该自动化动作使得该第二图像为该输入事件的目标。
15.如权利要求11的处理器可读介质,进一步包括表示指令的代码,当所述指令在该处理器被执行时使得该处理器:
确定该第二图像不满足该图形用户界面的该部分;
确定来自所述多个图像中的第三图像满足该图形用户界面的该部分;并且
独立于用户输入,在该图形用户界面的该部分处执行该输入事件。
CN201280068227.9A 2012-01-26 2012-01-26 基于图像的应用自动化 Pending CN104160370A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/022748 WO2013112160A1 (en) 2012-01-26 2012-01-26 Image-based application automation

Publications (1)

Publication Number Publication Date
CN104160370A true CN104160370A (zh) 2014-11-19

Family

ID=48873769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068227.9A Pending CN104160370A (zh) 2012-01-26 2012-01-26 基于图像的应用自动化

Country Status (4)

Country Link
US (1) US10303349B2 (zh)
EP (1) EP2807540A4 (zh)
CN (1) CN104160370A (zh)
WO (1) WO2013112160A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041648A1 (en) * 2013-09-19 2015-03-26 Hewlett-Packard Development Company, L.P. Application menu modification recommendations
EP3053142A4 (en) * 2013-09-30 2017-07-19 Hewlett-Packard Development Company, L.P. Record and replay of operations on graphical objects
US10135684B2 (en) * 2015-08-06 2018-11-20 Airwatch Llc Differential staging of devices in bulk enrollment
US11106934B2 (en) * 2019-02-11 2021-08-31 Innovaccer Inc. Automatic visual display overlays of contextually related data from multiple applications
US20230028654A1 (en) * 2020-01-08 2023-01-26 Nippon Telegraph And Telephone Corporation Operation log acquisition device and operation log acquisition method
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
KR102444398B1 (ko) * 2020-05-11 2022-09-16 유아이패스, 인크. 그래픽 요소 검색 기술 선택, 앵커 및 타겟의 퍼지 논리 선택, 및/또는 로봇 프로세스 자동화를 위한 계층적 그래픽 요소 식별
US20220032471A1 (en) * 2020-08-03 2022-02-03 Automation Anywhere, Inc. Robotic process automation using enhanced object detection to provide resilient playback capabilities

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276282A (zh) * 2007-03-27 2008-10-01 三星电子株式会社 外部存储装置及其自动操作方法
US20090125463A1 (en) * 2007-11-13 2009-05-14 Shohei Hido Technique for classifying data
US20090150813A1 (en) * 2007-12-05 2009-06-11 C/O Canon Kabushiki Kaisha Animated user interface control elements
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099893B2 (en) 2002-06-28 2006-08-29 Sap Aktiengesellschaft Recording application user actions for application testing
EP1763865B1 (en) * 2004-07-08 2018-08-22 Microsoft Technology Licensing, LLC Automatic image capture for generating content
US7694181B2 (en) 2005-12-12 2010-04-06 Archivas, Inc. Automated software testing framework
US8031950B2 (en) 2006-01-23 2011-10-04 Microsoft Corporation Categorizing images of software failures
JP4749235B2 (ja) * 2006-05-30 2011-08-17 ソフトバンクモバイル株式会社 移動体通信端末及びサーバ
JP4962841B2 (ja) * 2006-06-20 2012-06-27 富士ゼロックス株式会社 操作画面生成装置、電子機器、プログラム
US7840851B2 (en) 2008-02-15 2010-11-23 Red Hat, Inc. Annotating GUI test automation playback and debugging
US8839107B2 (en) * 2008-05-13 2014-09-16 International Business Machines Corporation Context based script generation
US8332765B2 (en) 2009-03-06 2012-12-11 Microsoft Corporation Problem reporting system based on user interface interactions
JP4635093B2 (ja) * 2009-03-30 2011-02-16 株式会社東芝 情報処理装置
CN102667696B (zh) * 2009-11-23 2016-04-13 惠普发展公司,有限责任合伙企业 用于用户界面中的对象标识的系统与方法
US9182981B2 (en) * 2009-11-23 2015-11-10 University Of Washington Systems and methods for implementing pixel-based reverse engineering of interface structure
WO2011073759A1 (en) * 2009-12-01 2011-06-23 Cinnober Financial Technology Ab Methods and systems for automatic testing of a graphical user interface
US8549478B2 (en) * 2009-12-02 2013-10-01 Hewlett-Packard Development Company, L.P. Graphical user interface input element identification
US9298598B2 (en) 2010-03-22 2016-03-29 Red Hat, Inc. Automated visual testing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101276282A (zh) * 2007-03-27 2008-10-01 三星电子株式会社 外部存储装置及其自动操作方法
US20090125463A1 (en) * 2007-11-13 2009-05-14 Shohei Hido Technique for classifying data
US20090150813A1 (en) * 2007-12-05 2009-06-11 C/O Canon Kabushiki Kaisha Animated user interface control elements
US20110047488A1 (en) * 2009-08-24 2011-02-24 Emma Butin Display-independent recognition of graphical user interface control

Also Published As

Publication number Publication date
US10303349B2 (en) 2019-05-28
US20150074609A1 (en) 2015-03-12
WO2013112160A1 (en) 2013-08-01
EP2807540A1 (en) 2014-12-03
EP2807540A4 (en) 2015-10-21

Similar Documents

Publication Publication Date Title
CN104160370A (zh) 基于图像的应用自动化
US11200073B1 (en) Automatic anchor determination and target graphical element identification in user interface automation
US9448652B2 (en) Method and terminal for activating application based on handwriting input
US7930636B2 (en) Systems, methods and computer products to automatically complete a GUI task
US9317403B2 (en) Method for creating a label
EP3905038B1 (en) Screen response validation of robot execution for robotic process automation
EP2807541B1 (en) Image-based application automation
EP2705427A1 (en) Image-based automation systems and methods
CN112930537B (zh) 文本检测、插入符号追踪以及活动元素检测
KR102373942B1 (ko) 텍스트 검출, 캐럿 추적, 및 활성 엘리먼트 검출
CN114868109B (zh) 用户界面自动化中的自动锚点确定和目标图形元素标识
WO2020250320A1 (ja) 操作ログ取得装置、操作ログ取得方法および操作ログ取得プログラム
CN115917446A (zh) 用于机器人过程自动化的系统和方法
EP3905132A1 (en) Text detection and active element detection
CN115993912A (zh) 页面录制方法、页面回放方法、介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141119

WD01 Invention patent application deemed withdrawn after publication