《基于动态图形用户界面的对象识别方法.pdf》由会员分享,可在线阅读,更多相关《基于动态图形用户界面的对象识别方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104317705 A(43)申请公布日 2015.01.28CN104317705A(21)申请号 201410542900.9(22)申请日 2014.10.14G06F 11/36(2006.01)G06F 9/44(2006.01)(71)申请人北京久其软件股份有限公司地址 100081 北京市海淀区大慧寺路5号3号楼3层(72)发明人黄芳 赵晓 曾理志 梁建军杨崇 商悦 薛乃斌(74)专利代理机构北京三友知识产权代理有限公司 11127代理人王涛(54) 发明名称基于动态图形用户界面的对象识别方法(57) 摘要本发明提供一种基于动态图形用户界面的对象识别方法。
2、及装置,所述的对象识别方法包括:调用Selenium中的JavaScript的执行器从服务端获取根对象ID;将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由所述的服务端根据所述函数名、对象信息及根对象ID生成;根据所述的查找结果操作所述对象。通过本发明,可以解决动态GUI对象识别不到或者识别不准确的问题;利用执行JavaScript函数的形式识别查找对象,效率更高。(51)Int.Cl.权利要求书1页 说明书5页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书5。
3、页 附图2页(10)申请公布号 CN 104317705 ACN 104317705 A1/1页21.一种基于动态图形用户界面的对象识别方法,其特征在于,所述的对象识别方法包括:调用Selenium中的JavaScript的执行器从服务端获取根对象ID;将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由所述的服务端根据所述函数名、对象信息及根对象ID生成;根据所述的查找结果操作所述对象。2.根据权利要求1所述的对象识别方法,其特征在于,所述的对象信息为对象类型或者对象对应的文本。3.根据权利要求1所述的。
4、对象识别方法,其特征在于,所述的查找结果包括:要查找的对象或者对象的ID。4.根据权利要求1所述的对象识别方法,其特征在于,所述的对象识别方法还包括:通过所述的执行器调用所述的服务端JavaScript函数生成所述的查找结果,并返回所述的查找结果。5.一种基于动态图形用户界面的对象识别装置,其特征在于,所述的对象识别装置包括:根对象获取单元,用于调用Selenium中的JavaScript的执行器从服务端获取根对象ID;信息发送单元,用于将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;查找结果获取单元,用于通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找。
5、结果由所述的服务端根据所述函数名、对象信息及根对象ID生成;对象操作单元,用于根据所述的查找结果操作所述对象。6.根据权利要求5所述的对象识别装置,其特征在于,所述的对象信息为对象类型或者对象对应的文本。7.根据权利要求5所述的对象识别装置,其特征在于,所述的查找结果包括:要查找的对象或者对象的ID。8.根据权利要求5所述的对象识别装置,其特征在于,所述的对象识别装置还包括:函数调用单元,用于通过所述的执行器调用所述的服务端JavaScript函数生成所述的查找结果,并返回所述的查找结果。权 利 要 求 书CN 104317705 A1/5页3基于动态图形用户界面的对象识别方法技术领域0001。
6、 本发明是关于图形用户界面自动化测试技术,特别是关于一种基于动态图形用户界面的对象识别方法。背景技术0002 UI自动化测试最核心的工作是识别到想要操作的界面元素(对象),比如一个文本框(Textbox)或者一个按钮(Button),必须先要获得这些对象,才能够进行操作。对于静态GUI(Graphical User Interface图形用户界面),目前已有的自动化测试框架(工具)通过先录制脚本,然后在回放的时候根据界面元素(对象)的唯一标识(ID)都能有效的识别到此元素(对象),但是对于动态GUI,因为唯一标识(ID)是动态改变的,在回放的时候根据录制时的唯一标识(ID)去识别就会出现两种情。
7、况:(1)识别不到元素(对象)(2)识别到的对象不是想要操作的元素(对象)。0003 为了解决上述问题,ThoughtWorks公司开发的一套完整的开源Web应用程序测试系统(Selenium自动化测试框架(工具)。具有的对象识别方法包括根据By.id(界面元素的ID)、By.className(界面元素的ClassName)、By.tagName(界面元素的tagName)等等,但是其具有如下缺点:0004 除了By.id(界面元素的ID)之外,都不能识别唯一的一个界面对象,需要在众多识别对象中再根据其他对象属性来区分想要识别到的对象,识别效率大大降低;0005 By.id(界面元素的ID)。
8、对于静态GUI可以有效的识别而且效率很高,但是对于动态GUI则识别不到或者识别不准确。0006 如果页面控件在一个frame或者Iframe中,需要先进入frame或者Iframe中然后再进行查找;如果界面上frame或者iframe比较多,需要频繁的跳入与跳出。0007 为了解决现有技术中存在的问题,Mercury公司开发的一种自动测试工具(QTP),其一般要求先在对象仓库文件里定义仓库对象,里面存有实际对象的特征属性的值。然后在运行的时候,QTP会根据脚本里的对象名字,在对象仓库里找到对应的仓库对象。但是,其具有如下缺点:实际对象的特征属性的值也是对象的ID或者name等值,对于静态GUI。
9、可以有效的识别而且效率很高,但是对于动态GUI则识别不到或者识别不准确。发明内容0008 本发明提供一种基于动态图形用户界面的对象识别方法及装置,以解决现有技术中动态GUI对象识别不到或者识别不准确的问题。0009 为了实现上述目的,本发明提供一种基于动态图形用户界面的对象识别方法,所述的对象识别方法包括:0010 调用Selenium中的JavaScript的执行器从服务端获取根对象ID;0011 将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;0012 通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由说 明 书CN 104317705 A2/5。
10、页4所述的服务端根据所述函数名、对象信息及根对象ID生成;0013 根据所述的查找结果操作所述对象。0014 在一实施例中,所述的对象信息为对象类型或者对象对应的文本。0015 在一实施例中,所述的查找结果包括:要查找的对象或者对象的ID。0016 在一实施例中,所述的对象识别方法还包括:通过所述的执行器调用所述的服务端JavaScript函数生成所述的查找结果,并返回所述的查找结果。0017 为了实现上述目的,本发明还提供一种基于动态图形用户界面的对象识别装置,所述的对象识别装置包括:0018 根对象获取单元,用于调用Selenium中的JavaScript的执行器从服务端获取根对象ID;0。
11、019 信息发送单元,用于将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;0020 查找结果获取单元,用于通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由所述的服务端根据所述函数名、对象信息及根对象ID生成;0021 对象操作单元,用于根据所述的查找结果操作所述对象。0022 在一实施例中,所述的对象信息为对象类型或者对象对应的文本。0023 在一实施例中,所述的查找结果包括:要查找的对象或者对象的ID。0024 在一实施例中,所述的对象识别装置还包括:函数调用单元,用于通过所述的执行器调用所述的服务端JavaScript函数生成所述的查找结果,并。
12、返回所述的查找结果。0025 通过本发明,可以解决动态GUI对象识别不到或者识别不准确的问题;利用执行JavaScript函数的形式识别查找对象,效率更高。附图说明0026 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。0027 图1为本发明实施例的对象识别方法流程图;0028 图2为本发明实施例中客户端获取根对象ID的流程图;0029 图3为本发明实施例中客户端获取所要查找的对象和/。
13、或者对象的ID的流程图;0030 图4为本发明实施例的对象识别装置的结构框图。具体实施方式0031 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0032 如图1所示,本发明实施例提供了一种基于动态图形用户界面的对象识别方法,该对象识别方法包括:说 明 书CN 104317705 A3/5页50033 S101:调用Selenium中的JavaScript的执行器从服务端获取根对象I。
14、D;0034 S102:将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的服务端;0035 S103:通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由所述的服务端根据所述函数名、对象信息及根对象ID生成;0036 S104:根据所述的查找结果操作所述对象。0037 图1中的对象识别方法的执行主体为客户端,客户端可以为手机、电脑。客户端还可以是IE,例如用户通过IE进行网页访问是,IE为客户端,网页为服务端。0038 由图1的流程可知,客户端通过Selenium中的JavaScript的执行器与服务端进行两次信息交互,第一次为客户端从服务端获取根对象ID,第二。
15、次为客户向服务端发送函数名、对象信息及根对象ID,获取要查找的对象或者对象的ID。通过两次信息交互,可以解决动态GUI对象识别不到或者识别不准确的问题;利用执行JavaScript函数的形式识别查找对象,效率更高。0039 上述执行器可以通过Selenium提供,如Object executeScript(String script,Object.args)。0040 S101具体实施时,如图2所示,客户端可以调用Selenium中的JavaScript的执行器向服务端发出根对象ID获取请求信息,以获取整个GUI的根对象ID,即获取对应的Body标签(可根据Selenium的By.tagNam。
16、e(“body“)获取)。服务端收到该根对象ID获取请求信息后,通过上述执行器向客户端发送根对象ID。客户端可以最终通过Selenium中的JavaScript的执行器从服务端获取根对象ID。0041 客户端得到根对象ID之后,将进行S102及S103,将函数名、对象信息及根对象ID通过上述的执行器发送给服务端。在一实施例中,该对象信息为对象类型或者对象对应的文本。对象类型为class属性,对象对应的文本为Text属性。具体实施时,如图3所示,客户端向上述执行器发送函数名、对象信息及根对象ID,执行器接收到函数名、对象信息及根对象ID之后,将函数名、对象信息及根对象ID发送给服务端。0042 。
17、客户端向服务端发送的函数名可以包括多个函数的函数名,例如包括两个函数名,第一个为对象,第二个为对象的ID。对于第一个函数名,客户端要查找的为对象,对于第二个函数名,客户端要查找的为对象的ID。0043 JavaScript的执行器可以调用执行服务端的JavaScript函数,服务端的JavaScript函数将根据接收到的函数名、对象信息及根对象ID提供元素对应的对象类型(class属性)或者对象对应的文本(Text属性)查找对象的JavaScript函数,通过JavaScript函数,生成查找结果,并返回查找结果,即向上述执行器返回所要查找的对象(对应第一个函数名)或者对象的ID(对应第二个函。
18、数名)。上述执行器将所要查找的对象和/或者对象的ID传给客户端。0044 客户端收到所要查找的对象和/或者对象的ID之后,就可以根据所述的查找结果操作该对象,例如可以进行点击、移动、输入等操作。0045 通过本发明的对象识别方法,可以解决动态GUI对象识别不到或者识别不准确的问题;利用执行JavaScript函数的形式识别查找对象,效率更高。0046 如图4所示,本发明提供一种基于动态图形用户界面的对象识别装置,其该对象说 明 书CN 104317705 A4/5页6识别装置包括:根对象获取单元401,信息发送单元402,查找结果获取单元403及对象操作单元404。0047 根对象获取单元40。
19、1用于调用Selenium中的JavaScript的执行器从服务端获取根对象ID。S101具体实施时,根对象获取单元401可以调用Selenium中的JavaScript的执行器向服务端发出根对象ID获取请求信息,以获取整个GUI的根对象ID,即获取对应的Body标签(可根据Selenium的By.tagName(“body“)获取)。服务端收到该根对象ID获取请求信息后,通过上述执行器向客户端发送根对象ID。客户端可以最终通过Selenium中的JavaScript的执行器从服务端获取根对象ID。0048 信息发送单元402用于将函数名、对象信息及所述的根对象ID通过所述的执行器发送给所述的。
20、服务端。查找结果获取单元403用于通过所述的执行器从所述的服务端获取所述对象的查找结果,所述的查找结果由所述的服务端根据所述函数名、对象信息及根对象ID生成。客户端得到根对象ID之后,将函数名、对象信息及根对象ID通过上述的执行器发送给服务端。在一实施例中,该对象信息为对象类型或者对象对应的文本。对象类型为class属性,对象对应的文本为Text属性。具体实施时,客户端向上述执行器发送函数名、对象信息及根对象ID,执行器接收到函数名、对象信息及根对象ID之后,将函数名、对象信息及根对象ID发送给服务端。0049 客户端向服务端发送的函数名可以包括多个函数的函数名,例如包括两个函数名,第一个为对。
21、象,第二个为对象的ID。对于第一个函数名,客户端要查找的为对象,对于第二个函数名,客户端要查找的为对象的ID。0050 JavaScript的执行器可以调用执行服务端的JavaScript函数,服务端的JavaScript函数将根据接收到的函数名、对象信息及根对象ID提供元素对应的对象类型(class属性)或者对象对应的文本(Text属性)查找对象的JavaScript函数,通过JavaScript函数,生成查找结果,并返回查找结果,即向上述执行器返回所要查找的对象(对应第一个函数名)或者对象的ID(对应第二个函数名)。上述执行器将所要查找的对象和/或者对象的ID传给客户端。0051 客户端收。
22、到所要查找的对象和/或者对象的ID之后,对象操作单元404就可以根据查找结果操作该对象,例如可以进行点击、移动、输入等操作。0052 通过本发明的对象识别装置,可以解决动态GUI对象识别不到或者识别不准确的问题;利用执行JavaScript函数的形式识别查找对象,效率更高。0053 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产。
23、品的形式。0054 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生说 明 书CN 104317705 A5/5页7用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。0055 这些计算机程序指令也可存储在能引导计算机或其他可编程数。
24、据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。0056 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。0057 本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。说 明 书CN 104317705 A1/2页8图1图2图3说 明 书 附 图CN 104317705 A2/2页9图4说 明 书 附 图CN 104317705 A。