基于图像的应用自动化的制作方法

文档序号:6498043阅读:244来源:国知局
基于图像的应用自动化的制作方法
【专利摘要】在一个实施方式中,基于图像的应用自动化系统检测与图形用户界面相关的输入事件,并将多个图像与该输入事件关联。来自该多个图像的每个图像包括输入事件发生在的该图形用户界面的至少一部分。
【专利说明】基于图像的应用自动化

【背景技术】
[1001]一些基于图像的应用(或软件)自动化系统典型地包括记录阶段和回放阶段。在记录阶段期间,基于图像的应用自动化系统记录将在回放阶段期间被自动化的应用的动作。例如,基于图像的应用自动化系统在图形用户界面检测输入事件并响应于每个输入事件捕获该图形用户界面的图像。通常,基于图像的应用自动化系统之后为每个输入事件定义指定该输入事件的图像的自动化动作,而且在记录阶段期间定义的自动动作存储在脚本文件内。
[1002]在回放阶段期间,基于图像的应用自动化系统执行在记录阶段期间记录的动作。例如,基于图像的应用自动化系统能够识别脚本文件中的自动化动作并重放该指定在自动化动作中的输入事件。即,对于每个自动化动作,该基于图像的应用自动化系统识别与那个自动化动作中指定的图像匹配的应用的图形用户界面的一部分,并执行该应用的那一部分处的输入事件。

【专利附图】

【附图说明】
[1003]图1是根据实施方式关联一组图像和输入事件的方法流程图。
[1004]图2A是根据实施方式对具有处于第一状态的图形用户界面元件的一部分图形用户界面的图示。
[1005]图2B是根据实施方式对具有处于第二状态的图形用户界面元件的图2A的一部分图形用户界面的图示。
[1006]图2C是根据实施方式对具有处于第三状态的图形用户界面元件的图2A和2B的一部分图形用户界面的图示。
[1007]图3A是根据实施方式对包括图2A的图形用户界面元件的图像的图示。
[1008]图3B是根据实施方式对包括图2B的图形用户界面元件的图像的图示。
[1009]图3C是根据实施方式对包括图2C的图形用户界面元件的图像的图示。
[1010]图4是根据实施方式的基于图像的应用自动化系统的示意性框图。
[1011]图5是根据实施方式的主控基于图像的应用自动化系统的计算设备的示意性框图。
[1012]图6是根据实施方式的关联一组图像和输入事件的方法流程图。
[1013]图7A和7B是根据实施方式的用以选择图像作为输入事件的目标的图形用户界面的图示。

【具体实施方式】
[1014]基于图像的应用(软件)自动化系统在其不能把与输入事件相关的图像和图形用户界面的一部分匹配时会经受失败。例如,输入事件可与具有多个状态(例如,可视化外观)的图形用户界面元件相关(或被在其处执行)。作为特定例子,输入事件可与按钮控件相关,当光标(例如鼠标指针)没有在该按钮控件上停悬时按钮控件具有第一可视外观,而当光标在该按钮控件上停悬时按钮控件具有第二可视外观。相应的,响应于诸如在按钮控件的鼠标按钮按下输入事件的输入事件而被捕捉的该按钮控件的图像将包括处于第二可视外观(或状态)的按钮控件,因为在鼠标按钮按下输入事件在按钮控件执行时,该鼠标指针停悬在该按钮控件上。
[1015]然而,在重放阶段期间,当基于图像的应用自动化系统试图重放包括在按钮控件处的鼠标按钮按下输入事件的自动化动作(例如,重放在自动化动作处指定的鼠标按钮按下输入事件)时,鼠标指针可能当时没有停悬在按钮控件之上。结果是,按钮控件处于第一可视外观,但该鼠标按钮按下输入事件的图像包括处于第二可视外观的按钮控件。因此,基于图像的应用自动化系统很可能无法匹配该图像和该按钮控件,并且对于这次自动化动作重放阶段将失败。
[1016]一些基于图像的应用自动化系统提供一种允许用户(诸如测试工程师)向基于图像的应用自动化系统提供图像作为由该基于图像的应用自动化系统生成的(或捕获的)图像的替代品的机制。例如,在上述的失败后,用户能手动生成图像,其包括处于第一可视外观的按钮控件,并将该图像提供给基于图像的应用自动化系统作为由该基于图像的应用自动化系统生成的图像的替代。
[1017]然而,这样的过程对于用户是耗时的。例如,用户可能被要求操纵该应用来显示该处于第一可视外观的按钮控件,生成该应用的屏幕快照图像,之后编辑(或修裁或重定义尺寸)该屏幕快照图像来产生图像来替换由该基于图像的应用自动化系统生成的图像。
[1018]此处讨论的实施方式把多个图像与输入事件关联。例如,包括在基于图像的应用自动化系统的记录阶段期间输入事件被执行于其处的图形用户界面元件的多个图像在不同时间被捕获,并且被该输入事件的自动化动作识别(或参考)。额外的,此处讨论的实施方式允许用户规定多个图像中的哪个应被用于识别该输入事件应被执行于其处的图形用户界面的一部分(例如,该图形用户界面元件)。相应的,例如,用户可从一组由该基于图像的应用自动化系统生成并与输入事件关联的的图像中选择图像,作为该输入事件的目标,而不是提供用户生成的图像。
[1019]图1是根据实施方式,将一组图像与输入事件关联的方法流程图。方法100可在记录阶段期间实施在例如,图4或图5图示的基于图像的应用自动化系统处。输入事件在块110检测。输入事件是在例如计算设备的系统处发生的输入。例如,输入事件可例如基于下列项而生成:诸如鼠标指针的输入设备的移动;与触控板、触敏显示器,或接近式敏感设备交互(例如触摸,在其处执行手势,或相对于其运动);鼠标或键盘按钮动作(例如,按压或释放鼠标按钮);或其他输入,诸如来自移动灵敏设备(例如,加速器或陀螺仪)或音频输入设备(例如麦克风)的输入。
[1020]这样的输入事件通常相对于图形用户界面(⑶I)或图形用户界面的元件(⑶I元件)执行。例如,用户可(例如使用鼠标或触敏设备点击该GUI元件)与GUI元件交互来生成相对于该⑶I元件的输入事件。作为另一个例子,⑶I元件可具有或是该⑶I的输入焦点(例如,响应于之前用户对该GUI元件的选择),并且在该GUI具有输入焦点时检测到或出现的输入事件与该GUI元件相关。相应的,输入事件可称为与该GUI的部分或Gn元件相关、发生在或执行在该GUI的部分或GUI元件。
[1021]GUI是允许用户与系统(例如计算设备)使用对象的图形表示而非文本命令交互的用户界面。例如,用户可将光标移动到按钮的图形表示,使用鼠标或触敏设备按下并释放该按钮的图形表示。
[1022]这样的图形表示此处称为图形用户界面元件(或GUI元件)。GUI元件是GUI的一部分,用户可在其处向GUI提供输入。例如,GUI元件可以是一种控件,诸如,按钮开关或按钮,单选按钮,复选框,文本区域或框,下拉列表,微调控件项(或旋转控件),滑动块,图标,树控件,滚动条,超链接或一些其他控件。作为另一个例子,GUI元件可以是GUI容器,其可包括其他GUI元件,诸如窗体,视图,对话框,帧,标签,菜单,或某种其它容器。
[1023]通常,诸如笛卡尔坐标系的坐标系与⑶I关联。例如,⑶I的左上角可被设计为原点并使用元组(0,0)描述。GUI的每个点(通常对应于⑶I在其输出的显示器(诸如计算机监控器)的每个像素)然后能使用相对于原点的坐标描述。例如,对于显示在具有1920*1080像素分辨率的计算机监控器的⑶I,该⑶I的左上角的点被描述为(0,O),该⑶I左下角的点描述为(0,1080),GUI右上角的点描述为(1920,0),该GUI右下角的点描述为(1920,1080)。相应的,输入事件可包括对输入事件在其发生的⑶I的位置(或多个位置)的描述。例如,光标的移动的输入事件可指定表明该移动开始的位置的一组坐标(例如,移动前该光标的位置)以及表明该移动结束的位置的另一组坐标。
[1024]基于图像的应用自动化系统实施的方法100可在块100使用多种方法检测输入事件。例如,基于图像的应用自动化系统可(例如使用操作系统的应用编程接口(API))向操作系统登记以接收包括输入事件的描述(例如,一类输入事件的类型的标识符,输入事件的描述(例如键盘上哪个按钮被按下)和/或输入事件的位置)的通知或信号,诸如系统信号,函数调用或方法调用。作为另一个例子,基于图像的应用自动化系统可与一个或多个设备驱动器通信以当外围设备(例如鼠标,触敏或接近式敏感设备(诸如触控板,物理键盘,或虚拟键盘(例如屏上键盘)))向计算设备提供信号或通知以指示已在那些外围设备发生输入事件时接收通知或信号。作为另外一个例子,基于图像的应用自动化系统可改编(instrument)操作系统(例如,钩住操作系统的输入事件处理例程或提供设备驱动器)来截获与输入事件相关且由操作系统或设备驱动器生成的通知或信号。
[1025]在块110检测到输入事件后,多个图像在块120被与该输入事件关联。换句话说,基于图像的应用自动化系统实施的方法100在输入事件和两个或多个图像之间定义或建立关系。例如,要与输入事件关联的每个图像的标识符和输入事件的描述(例如,统一资源标识符(URI),文件系统路径,或文件名)可在自动化动作存储。自动化动作表示要在重放阶段期间将被重放的输入事件。作为示例,自动化动作可在基于图像的应用自动化系统处表示为或存储为脚本文件的一部分,扩展式标记语言(XML)元素或XML元素组,或数据结构。
[1026]如此处使用的,用语“图像”意味着对基于主体的可视化外观的某个主体(例如,GUI, GUI的一部分,或GUI元件)的表示。进一步的,主体的图像的副本或变形(例如,改变的颜色空间,大小,样子,或比例)也是该主体的图像。
[1027]在一些实施方式中,与输入事件关联的图像于记录阶段期间在不同的时间按时间先后顺序生成,或者基于这样的图像。例如,基于图像的应用自动化系统实施方法100可按照间隔(诸如每隔一秒或每200毫秒)生成GUI的图像(例如,执行相对于GUI的屏幕快照或屏幕捕获)。可替换的,例如,基于图像的应用自动化系统实施方法100可以响应于诸如移动输入事件的输入事件而生成⑶I的图像。
[1028]在一些实施方式中,在记录阶段期间生成的每个图像被基于图像的应用自动化系统缓存或存档。在一些实施方式中,基于图像的应用自动化系统实施方法100包括固定长度的队列,在其中存储最近期生成的图像。进一步的,在一些实施方式中,基于图像的应用自动化系统实施方法100响应于在块110检测到的输入事件也生成⑶I的图像。此外,基于图像的应用自动化系统实施方法100在检测到输入事件后也继续生成GUI的图像。
[1029]与输入事件相关联的图像的数量基于例如输入事件种类或类型,用户定义或配置的参数、预定义参数、或其他标准根据多种实施方法变化。另外,与输入事件关联的图像包括输入事件在其处执行的GUI的一部分或GUI元件。例如,如所讨论的,与输入事件关联的图像包括处于不同状态的⑶I元件或⑶I的一部分。此外,与输入事件关联的图像可中心定位在该输入事件发生的位置。特别的,例如,基于图像的应用自动化系统可基于包括在该输入事件或之前的输入事件的描述中的位置信息识别输入事件在GUI的位置。
[1030]基于图像的应用自动化系统之后能够生成要与输入事件关联的一组图像。例如,基于图像的应用自动化系统可识别包围该位置的GUI的一部分或GUI元件。作为一个特定例子,使用边缘检测或其他图像处理分析方法,基于图像的应用自动化系统可识别包括或包围该位置的⑶I元件。作为另一个例子,基于图像的应用自动化系统可通过定义矩形,椭圆,多边形或其他包括该位置或以该位置为中心的形状来标识GUI的一部分。通过例如访问在输入事件前捕获的两个图像,响应于输入事件捕获的图像,输入事件后捕获的图像;生成那些图像的副本;(例如,基于为每幅图视情况缩放的GUI的坐标系统)在所识别的GUI部分或GUI元件周围修裁图像副本,基于图像的应用自动化系统可生成包括GUI的部分或GUI元件的一组图像。所修裁的图像然后可被如前所述地与输入事件关联,和/或存储在数据存储。
[1031]如前所讨论的,根据不同实施方式,图像副本可被修裁为具有不同尺寸或形状。此夕卜,可在不同于输入事件的位置的位置(或点)周围修裁图像副本。换句话说,修裁的图像副本可以GUI的位置而不是输入事件的位置为中心。在这样的实施方式中,基于图像的应用自动化系统在重放阶段期间于适当偏离这样的图像的中心的位置重放该输入事件,从而使得该输入事件在与在记录阶段期间发生输入事件的位置相同的位置重放。如此处所用的,如果第二位置与第一位置相同或充分相似或接近第一位置,使得在第二位置的输入事件与第一位置的输入事件在⑶I或⑶I元件具有相同的效果,则第二位置与第一位置相同。
[1032]图1示出的方法100是示例性实施方式。在其他实施方式中,这样的方法可包括附加块或步骤。例如,在一些实施方式中,方法100可包括附加块,在该附加块,定义包括或识别输入事件和关联的图像的自动化动作。而且,块110和120可对输入事件组中的每个输入事件重复进行。进一步的,在一些实施方式中,可检测输入事件与哪些图像没有关联。例如,一些输入事件(诸如例如从键盘(例如,击键)输入的输入事件)被应用于GUI的一部分或⑶I元件,其具有或作为该⑶I的当前输入焦点,并且因而重放这样的输入事件的该基于图像的应用自动化系统而不需识别该GUI部分或该GUI元件以重放样的输入事件。
[1033]图2A,2B和2C是根据实施方式,具有分别处于第一状态,第二状态和第三状态的图像用户界面元件的图形用户界面的一部分的图示。窗口 210是⑶I元件,其包括按钮(⑶I元件)215和216。尽管在图2A、2B和2C中图示的例子中的GUI元件为按钮,在其他实施方式中也可以使用其他GUI元件。光标220是诸如鼠标指针的光标,通过其用户可与窗口210,按钮215和/或按钮216交互。
[1034]按钮215具有多种状态,包括图2A中图示的第一状态,图2B中图示的第二状态,以及图2C中图示的第三状态。按钮215的状态是按钮215的不同可视外观,并被用于(例如向用户)提供按钮215当前状态的指示。在图2A,2B和2C中图示的例子中,当光标220未和按钮215交互时,按钮215处于第一状态(图2A),当光标220悬停或位于按钮215处时,处于第二状态(图2B),和当鼠标按钮按下事件发生且光标215悬停在按钮215处时,处于第三状态(图2C)。
[1035]如前讨论的,由于相对于哪些自动化动作将被重放(或规定在那些自动化动作中所规定的输入事件)应用的GUI元件的状态(或可视表示)在执行该应用期间能够改变,基于图像的应用自动化系统在识别自动化动作应该在其处重放的该应用的一部分(使用GUI输出)时会失败,因为在那个自动化动作中指定的图像包括处于一种状态的应用的一部分,但该应用的那个部分当时(即,该自动化动作应被重放的时候)处于不同的状态。
[1036]根据此处讨论的实施方式实施的基于图像的应用自动化系统可在记录阶段期间生成⑶1(或其部分)的多个图像。例如,通过周期性的捕捉包括窗口 210的应用的屏幕快照或响应于诸如移动输入事件的输入事件而捕捉屏幕快照,这样的基于图像的应用自动化系统可生成窗口 210的一组图像,其包括处于第一状态的按钮215的至少一个图像,以及处于第二状态的按钮215的至少一个图像。而且,基于图像的应用自动化系统在鼠标按下事件发生在按钮215时(例如,当光标220悬停在按钮215处时)检测输入事件,并可响应于该输入事件生成包括处于第三状态的按钮215的图像。
[1037]另外,响应于该输入事件,基于图像的应用自动化系统可在输入事件的位置周围修裁来自那些图像的图像(例如,每个图像或图像子集,诸如每隔一个图像或每第η个图像)。例如,来自主控该应用的计算设备的操作系统的通知可向该基于图像的应用自动化系统提供通知,其包括该输入事件的坐标。基于图像的应用自动化系统之后可修裁图像来生成与输入事件曾相关的⑶I元件的第二组图像,并可将该第二组图像与该输入事件(例如,在自动化动作)关联。
[1038]图3Α,3Β和3C是根据实施方式对包括分别处于图2Α,2Β和2C中图示的状态的按钮215的图像的图示。换言之,图3Α,3Β和3C图示了前面讨论的与输入事件关联的第二组图像。图像310包括处于第一状态的按钮215和窗口 210的一部分。类似的,图像320包括处于第二状态的按钮215和窗口 210的一部分,图像330包括处于第三状态的按钮215和窗口 210的一部分。在图3Α,3Β和3C图示的示例中,当(例如,在由主控该应用的计算设备的操作系统识别的位置作为该输入事件的位置处)检测到输入事件时,每个图像310、320、和330的中心通常或基本上位于光标220的位置。
[1039]图4是根据实施方式的基于图像的应用自动化系统的示意性框图。基于图像的应用自动化系统400包括事件检测模块410,图像生成模块420,关联模块430,图像储存库440以及选择模块450。尽管各种模块(即,硬件和软件的组合)关于图4和5以及其他示例实施方式示出并讨论了,模块的其他组合或模块的子组合可包含在其他实施方式中。换言之,尽管图4、5中图示并且在其他示例性实施方式中讨论的模块在此处讨论的例子中执行特定功能,这些以及其他功能可被完成、实施、或实现在不同的模块或在模块组合。例如,所图示和/或分开讨论的两个或多个模块可被组合为一个模块,其执行关于这两个模块所讨论的功能。另一个例子,关于这些例子所讨论的在一个模块执行的功能可执行在一个或多个不同模块。
[1040]事件检测模块410检测或确定输入事件何时发生在包括GUI的应用,并向关联模块430提供与该输入事件相关的通知(例如,信号或消息)。在一些实施方式中,事件检测模块410也向图像生成模块420提供关于输入事件的通知。如上所讨论的,事件检测模块410例如可以向应用被主控的操作系统登记或改编操作系统以接收输入事件的通知。
[1041]图像生成模块420生成⑶I的图像。例如,图像生成模块420可按某个时间间隔捕获GUI的屏幕快照,和/或可从事件检测模块410接收与输入事件相关的通知并响应于这些通知生成图像。在一些实施方式中,图像生成模块420可响应于来自其他模块的刺激或信号生成图像。
[1042]在一些实施方式中,图像生成模块420把图像存储在队列中以维护在图像生成模块420生成的最新近图像的记录。例如,图像生成模块420可把7个最新近生成的图像存储在队列。当生成新图像时,7个图像中最老的图像被从该队列丢弃(例如,在存储器被复写,从存储器移出,或取消该图像的存储器分配),且新图像被加入到该队列。在其他实施方式中,图像生成模块420在图像储存库440存储图像。图像存储库440可以是数据存储,诸如分配为存储图像的数据库或存储器。在一些实施方式中,图像存储库440作为或操作为固定长度的队列(例如,类似上面关于图像生成模块420讨论的队列)。其他实施方式中,图像存储库440是数据存储,其中图像生成模块440在记录阶段期间生成的所有图像被存储。
[1043]—些实施方式中,由图像生成模块420生成的图像临时存储(例如缓存)在图像生成模块420,并且在图像储存库440存储记录阶段持续的时间那么长(或更长)。因此,例如,图像可存储在图像生成模块420的固定长度的队列,并且在从图像生成模块420丢弃之前被存储在图像存储库。
[1044]关联模块430从事件检测模块410接收与输入事件相关的通知,且将图像生成模块420处生成的一组图像与输入事件关联。例如,关联模块430可访问图像生成模块420和/或图像存储库440处的一组最新近生成的图像,且包含在关联模块430处为那个输入事件生成的自动化动作(例如,包括那个输入事件的描述的自动化动作)中的那些图像的标识符(例如URI)。
[1045]在一些实施方式中,关联模块430基于在图像生成模块420和/或图像存储库440访问的图像生成图像,将该在关联模块430生成的图像与输入事件关联。例如,关联模块430可生成图像生成模块420和/或图像存储库440处访问的图像的副本,修裁这些图像的副本来生成尺寸减小的图像,其包括输入事件相对于⑶I的位置(例如中心在该位置或包围该位置),并将该输入事件与该尺寸减小的图像关联。相应的,每个与该输入事件关联的图像可包括具有输入事件在其发生的⑶I元件的⑶I的一部分,而不是整个⑶I。
[1046]图5是根据实施方式主控基于图像的应用自动化系统的计算设备的示意性框图。在图5图示的示例中,计算设备500包括处理器510,显示器接口 520,存储器530并且主控操作系统531,事件检测模块410,图像生成模块420,关联模块430,和应用535。处理器510是硬件和软件的任何组合,其执行或解释指令,代码或信号。例如,处理器510可以是微处理器,专用集成电路(ASIC),分布式处理器(诸如处理器或计算设备的集群或网络),多核或多处理器的处理器,或虚拟机的虚拟的或逻辑处理器。
[1047]显示器接口 520是硬件和软件的组合,其输出数据给显示器,例如计算机监视器,笔记本计算机显示器,或平板显示器。诸如,显示器接口 520可包括耦合到处理器510的图像处理器或图形卡,以及被主控在该图形卡,图形处理器和/或处理器的相关软件驱动器。在一些实施方式中,诸如计算设备可以是笔记本计算机,平板,一体台式机,或其他具有集成显示器的计算设备。在一些这样的实施方式中,显示器接口 520可包括显示器。
[1048]存储器530是处理器可读介质,其存储指令,代码,数据或其他信息。如此处所用的,处理器可读介质是非临时存储指令,代码,数据或其他信息的任何介质,且可以由处理器直接或间接访问。换句话说,处理器可读介质是非临时介质,处理器可在其中访问指令,代码,数据或其他信息。例如,存储器530可以是易失随机访问存储器(RAM),持久数据存储器(诸如硬盘驱动或固态驱动,压缩光盘(CD),数字视频光盘(DVD),安全数字(SD)卡,多介质(MMC)卡,压缩闪存卡(CF),或其组合或其他存储器。换句话说,存储器530可表示多处理器可读介质。在一些实施方式中,存储器530可与处理器510集成,与处理器510分离,或位于计算设备510外部。
[1049]存储器530包括在处理器510执行时实现操作系统531,事件检测模块410,图像生成模块420,关联模块430,应用535的指令或代码。换句话说,操作系统531、包括事件检测模块410,图像生成模块420,关联模块430的基于图像的应用自动化系统、以及应用535被主控在计算设备500。
[1050]在图5图示的示例中,应用535是一个在其处包括事件检测模块410,图像生成模块420,关联模块430的基于图像的应用自动化系统可记录输入事件以生成自动化动作的应用。在其他实施方式中,应用535被主控在不同的计算设备,且该包括事件检测模块410,图像生成模块420,关联模块430的基于图像的应用自动化系统可使用例如计算设备500以及其他计算设备(未示出)处的通信接口和例如微软远程桌面连接或虚拟网络计算(VNC)的桌面共享系统通过通信链路记录该应用处的输入事件来生成自动化动作。
[1051]在一些实施方式中,计算设备500可以是虚拟计算设备。例如,计算设备500可作为虚拟机被主控在计算服务器。进而,在一些实施方式中,计算设备500可以是虚拟计算设备,且操作系统531是最小的或刚足够的操作系统以支持事件检测模块410,图像生成模块420,关联模块430和应用535 (例如,提供服务,诸如通信协议栈,并提供对计算设备500的部件(诸如显示器接口 520)的访问)。
[1052]事件检测模块410,图像生成模块420,关联模块430可被从多个存储器或处理器可读介质访问或安装在计算设备500。例如,计算设备500可在远程处理器可读介质经由通信接口(诸如网络接口卡(NIC,未示出))访问事件检测模块410,图像生成模块420,关联模块430。作为特定示例,计算设备500可为瘦客户机,其在引导序列过程中访问操作系统531,事件检测模块410,图像生成模块420,关联模块430以及应用535。
[1053]作为另一示例,计算设备500可包括(未在图5图示)处理器可读介质访问设备(例如,⑶,DVD, SD, MMC或CF驱动或读取器),并且可在处理器可读介质通过该处理器可读介质访问装置访问事件检测模块410,图像生成模块420,关联模块430。作为更特定的示例,处理器可读介质访问装置可是DVD驱动,在其中可访问包括用于一个或多个事件检测模块410,图像生成模块420和关联模块430的安装包的DVD。该安装包可在处理器510执行或解释,以在计算设备500 (例如在存储器530)安装事件检测模块410,图像生成模块420和关联模块430中的一个或多个。计算设备500之后可主控或执行事件检测模块410,图像生成模块420和关联模块430。
[1054]在一些实施方式中,事件检测模块410,图像生成模块420,和关联模块430可被在多个源、位置或资源访问或者被从多个源、位置或资源安装。例如,事件检测模块410,图像生成模块420和关联模块430的一些部件可通过通信链路安装,并且事件检测模块410,图像生成模块420和关联模块430的其他部件可从DVD安装。
[1055]在其他实施方式中,事件检测模块410,图像生成模块420和关联模块430可横跨多个计算设备分布。即,事件检测模块410,图像生成模块420和关联模块430的一些部件可被主控在一个计算设备,并且事件检测模块410,图像生成模块420和关联模块430的其他部件可被主控在另一计算设备。作为特定示例,事件检测模块410,图像生成模块420和关联模块430可被主控在计算设备的集群内,在其中事件检测模块410,图像生成模块420和关联模块430的每一个都被主控在多个计算设备,并且没有单个的计算设备主控事件检测模块410,图像生成模块420和关联模块430的每一个。
[1056]图6是根据实施方式将一组图像与输入事件关联的方法流程图。如图6所图示,在块610检测输入事件,以及在块620图像被与该输入事件关联,例如,如上关于图1所讨论的那样。在块630,来自与在块620的输入事件关联的图像的图像然后被指定为输入事件的目标。输入事件的目标是这样的图像,其应在重放阶段过程中被使用来识别⑶I的一部分,图像关联的输入事件应被应用到该GUI的部分或在该GUI的部分被执行。
[1057]目标可使用多种方法指定。例如,通过在该输入事件的自动化动作首先把响应于该输入事件而生成的图像的标识符列在与输入事件关联的图像列表中,可把该图像指定为该输入事件的目标。在其他实施方式中,自动化动作可包括区域,在该区域可包括作为输入事件的目标的图像的标识符。在再又一例子中,可为作为输入事件的目标的图像设置目标标志或属性,而且可以为与输入事件关联的每个其他图像重置目标标志或属性。
[1058]另外,指定为输入事件的目标的图像可基于多种方法选择。例如,输入事件后生成的图像可被指定为目标。作为另一个示例,响应于该输入事件生成的图像可被指定为目标。作为再另一个示例,在输入事件之前或之后的预定秒数或毫秒数生成的图像可被指定为目标。
[1059]在块640,选择界面被输出给用户。选择界面允许用户指示与当前指定为目标的图像不同的图像应被指定为该输入事件的目标(例如,在该输入事件的自动化动作中)。图7A和7B图示了选择界面。
[1060]如果用户提供了输入(例如,击键,鼠标点击,在触敏输入设备处的轻敲),其指示目标不应被改变(例如,当前被指定为目标的图像应作为目标),方法600完成。在一些实施方式中,方法600也为输入事件定义自动化动作。更特别的,例如,用户可在选择界面点击“接受”或“确认”按钮,并且基于图像的应用自动化系统实现方法600可为该输入事件定义自动化动作,自动化动作指定了输入事件,与该输入事件关联的图像,以及目标。
[1061]如果用户提供了指示目标应改变的输入,方法600进行到660,在此处基于图像的应用自动化系统实现方法600基于用户输入选择图像并指定该图像作为目标。例如,图7A和7B是根据实施方式用于为输入事件选择图像作为目标的图形用户界面的图示。在图7A和7B图示的例子中,选择界面700包括与自动化动作相关的信息。例如,选择界面700包括标识自动化动作710的信息,标识输入事件720的类型的信息,与输入事件关联的图像(或图像的表示)(此处,为上面关于图2A、2B、2C、3A,3B和3C所讨论的图像310,320和330),以及标识输入事件730的当前目标的信息。
[1062]选择界面700可由基于图像的应用自动化系统响应于用户对自动化动作的选择进行显示。例如,基于图像的应用自动化系统可在另一个界面(未示出)显示自动化动作列表,用户可选择(例如,使用鼠标点击)自动化动作的表示以引发该基于图像的应用自动化系统来输出选择界面700。
[1063]如图7A所图示的,该输入事件的当前目标是图像330。图像330响应于输入事件而被产生且包括(或显示)处于与鼠标的点击动作关联的状态的“确认”按钮。然而,由于在基于图像的应用自动化系统尝试重放该自动化动作时光标不在“确认”按钮处,该“确认”按钮将具有包含(或显示)在图像310中的状态。相应的,用户想指定图像310作为这个自动化动作(或作为与这个自动化动作关联的输入事件)的目标。
[1064]为将图像330指定为这个自动化动作的目标,用户引导光标740到图像310并点击图像310。作为响应,选择界面按图7B所图示的那样更新以指示图像310是现在该自动化动作的当前目标,并且该基于图像的应用自动化系统将尝试定位匹配图像310的GUI的一部分,在重放阶段过程中输入事件将在其处重放。
[1065]再次参考图6,响应于用户输入选择的图像(上面关于图7A和7B所讨论的图像310)在块660被指定为在块610检测的该输入事件(或该输入事件的自动化动作)的目标。方法600之后结束。如前面讨论的,一些实施方式,方法600在完成之前定义或更新输入事件的自动化动作,例如,以在自动化动作内指定新目标。例如,响应于在自动化动作的区域处的(或用户选择的)用户输入,方法600可存储所选择的图像的标识符。作为另一个示例,与输入事件关联的图像的标识符列表可被重新排列,从而响应于用户输入而选择的图像的标识符首先被列出或被列在某个其他预先确定的位置。作为再又一例子,可重置与之前被指定为目标的图像关联的目标标志,并且可设置与响应于用户输入选择的图像关联的目标标志。
[1066]在图6中所图示的方法600是一种实施方式的示例。在其他实施方式中,与图6中所示出的那些相比,方法600可以包括附加的或者更少的或者重新安排的块(或步骤)。例如,在一些实施方式中,在块630图像未被指定为目标。即,基于图像的应用自动化系统实施方法600不为该输入事件指定或初步指定目标。更确切而言,该基于图像的应用自动化系统在块640输出该选择界面以提醒用户选择图像作为目标。
[1067]进而,在一些实施方式中,基于图像的应用自动化系统实施方法600不把输出选择界面作为方法600的部分。换句话说,例如,块610,620,630和640是第一过程(或子过程)的部分,块640,650和660是第二过程(或子过程)的部分。作为特定示例,块610,620,630,和640在基于图像的应用自动化系统的记录阶段过程中如前所讨论的那样执行,并且该基于图像的应用自动化系统响应于用户输入相对于块610,620,630和640并行或者异步地执行块640,650,660和640。换句话说,该基于图像的应用自动化系统在用户指示(例如,使用鼠标点击)该用户想要指定图像作为输入事件的目标时执行块640,650和
660。
[1068]尽管前面已描述和示出了某些实施方式,但是可在形式和细节上做出各种改变。例如,已经关于一个实施方式和/或方法描述的一些特征可与其他实施方式相关。换句话说,关于一个实施方式描述的方法,特征,部件和/或属性在其他实施方式中是有用的。作为另一示例,前面关于特定模块或元件讨论的功能可被包含在其他实施方式的不同的模块,引擎或元件中。进一步的,应理解的是,此处描述的系统,设备和方法可包括所描述的不同实施方式的部件和/或特征的多种组合和/或子组合。因此,参考一个或多个实施方式描述的特征可与此处描述的其它实施方式组合。
[1069]如此处所使用的,用语“模块”是指硬件(例如,如集成电路或其他电路的处理器)和软件(例如,机器或处理器可执行指令,命令或代码,例如固件,程序,或目标代码)的组合。硬件和软件的组合包括仅有硬件(即,没有软件元素的硬件元件),主控于硬件的软件(例如,存储在存储器且在处理器执行或解释的软件),或主控在硬件的硬件和软件。
另外,如此处所使用,单数形式的“一个”,“一”和“该”包括复数个指示物,除非上下文明确相反排除。因此,例如,用语“模块”意指一个或多个模块或多个模块的组合。进而,此处使用的用语“提供”包括推送机制(例如,通过通讯路径或通道向扫描仪发送界面描述),拉取机制(例如,响应于来自扫描仪的请求向扫描仪传送界面描述),以及存储机制(例如,在扫描仪可访问的界面描述所在的数据存储或服务存储界面描述)。进一步的,如此处所使用的,用语“基于”包括至少部分基于。因此,被描述为基于一些原因的特征,可仅仅基于该原因,或基于那个原因和一个或多个其他原因。
【权利要求】
1.一种存储代码描述指令的处理器可读介质,所述指令当在处理器执行时使得该处理器: 检测与图形用户界面相关的输入事件;以及 将该输入事件与多个图像关联,来自多个图像的每个图像包括该输入事件发生在的图形用户界面的至少一部分。
2.如权利要求1的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 从该多个图像中指定图像作为该输入事件的目标; 定义标识该输入事件和该目标的自动化动作。
3.如权利要求1的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 响应于用户输入,从该多个图像中选择图像;并且 从该多个图像指定该图像作为该输入事件的目标。
4.一种基于图像的应用自动化系统,包括: 事件检测模块,用以检测与图形用户界面相关的输入事件; 图像生成模块,用以生成图像,所述图像中的每一个图像包括图形用户界面的至少一部分;以及 关联模块,用以将来自该图像的多个图像与来自输入事件的输入事件关联。
5.如权利要求4的系统,进一步包括: 图像储存库,关联模块在图像储存库存储多个图像。
6.如权利要求4的系统,进一步包括: 选择模块,用于响应于用户输入,从多个图像中选择图像,该关联模块配置为将来自多个图像的图像指定为输入事件的目标。
7.如权利要求4的系统,其中: 输入事件与该图形用户界面的图形用户界面元素相关;并且 该多个图像包括包含处于第一状态的图形用户界面元件的至少一部分的第一图像,以及包含处于第二状态的图形用户界面元件的至少一部分的第二图像。
8.如权利要求4的系统,其中该关联模块可操作来从多个图像中指定图像作为该输入事件的目标,并定义标识该输入事件和该目标的自动化动作。
9.一种存储代码描述指令的处理器可读介质,所述指令当在处理器执行时使得处理器: 检测与图形用户界面元件相关的输入事件;以及 将包含至少一部分图形用户界面元件的多个图像与该输入事件关联。
10.如权利要求9的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 捕获多个图像; 该多个图像包括在输入事件前捕获的至少一个图像,响应于该输入事件捕获的至少一个图像,以及在该输入事件之后捕获的至少一个图像。
11.如权利要求9的处理器可读介质,进一步包括代码描述指令,当在处理器执行时,所述指令使得该处理器: 从多个图像中指定图像作为输入事件的目标。
12.如权利要求9的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 从该多个图像指定第一图像作为输入事件的目标; 响应于用户输入从该多个图像选择第二图像;以及 从多个图像指定第二图像作为输入事件的目标。
13.如权利要求9的处理器可读介质,其中来自多个图像的第一图像包括处于第一状态的图形用户界面元件的至少一部分,以及来自多个图像的第二图像包括处于第二状态的图形用户界面元件的至少一部分; 该处理器可读介质该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 从多个图像中指定一图像作为该输入事件的目标; 响应于用户输入从该多个图像选择第二图像;以及 从多个图像指定第二图像作为输入事件的目标。
14.如权利要求9的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 输出包含该多个图像的选择界面至显示器。
15.如权利要求9的处理器可读介质,该处理器可读介质进一步包括代码描述指令,所述指令当在处理器执行时,使得该处理器: 输出包含多个图像的选择界面至显示器; 响应于用户输入从多个图像选择图像;以及 从多个图像指定该图像作为输入事件的目标。
【文档编号】G06F9/44GK104246696SQ201280068226
【公开日】2014年12月24日 申请日期:2012年1月26日 优先权日:2012年1月26日
【发明者】D·萨罗尼, M·贾默, Y·利夫尼, M·兰斯克伦 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1