CN105740145A - 定位控件中的元素的方法及装置 - Google Patents

定位控件中的元素的方法及装置 Download PDF

Info

Publication number
CN105740145A
CN105740145A CN201610057589.8A CN201610057589A CN105740145A CN 105740145 A CN105740145 A CN 105740145A CN 201610057589 A CN201610057589 A CN 201610057589A CN 105740145 A CN105740145 A CN 105740145A
Authority
CN
China
Prior art keywords
control
name
target program
program
class name
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
CN201610057589.8A
Other languages
English (en)
Other versions
CN105740145B (zh
Inventor
周金剑
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.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology Co 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 Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201610057589.8A priority Critical patent/CN105740145B/zh
Publication of CN105740145A publication Critical patent/CN105740145A/zh
Application granted granted Critical
Publication of CN105740145B publication Critical patent/CN105740145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明是关于一种定位控件中的元素的方法及装置,属于计算机技术领域。该方法包括:获取目标程序的主UI库类名和程序名;获取所述目标程序中的web控件的控件类名,所述控件类名为所述web控件对外封装可见的类名;通过所述目标程序的主UI库类名、程序名以及所述控件类名获取所述web控件的网页文档对象;根据所述网页文档对象定位所述web控件中的元素,解决了相关技术中计算机仅能识别得到一个控件的封装完成的主类名,无法定位出控件中的具体元素的问题,达到了定位控件中的元素,提高计算机应用程序测试的效率的效果。

Description

定位控件中的元素的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种定位控件中的元素的方法及装置。
背景技术
在计算机应用程序测试领域中,自动化测试实现的条件之一是定位待测程序中的元素。
windows(视窗)系统是目前应用最为广泛的操作系统之一,对于windows程序的自动化而言,市面上一些常用的自动化工具如QTP、RanorexStudio以及windows自带的工具包,都可以识别windows系统的标准控件元素。
在实现本发明的过程中,申请人发现现有技术存在如下问题:
随着互联网及web应用的快速发展,越来越多的企业选择开发自主的UI(UserInterface,用户界面)界面库,并内嵌web控件,目前常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素,应用场景较小,影响对企业自主开发的UI界面内嵌的web控件的测试效率。
发明内容
本发明实施例提供了一种定位控件中的元素的方法及装置,技术方案如下:
根据本发明实施例的第一方面,提供了一种定位控件中的元素的方法,该方法用于电子设备中,包括:
获取目标程序的主UI库类名和程序名;
获取该目标程序中的web控件的控件类名,该控件类名为该web控件对外封装可见的类名;
通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象;
根据该网页文档对象定位该web控件中的元素。
可选地,该通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象,包括:
通过该目标程序的主UI库类名和程序名查找该目标程序;
调用预设的组件对象模型建立与该目标程序之间的连接;
根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象。
可选地,该通过该目标程序的主UI库类名和程序名查找该目标程序,包括:
在当前运行的应用程序窗口中,查找该目标程序的主UI库类名和程序名对应窗口的窗口句柄;
该调用预设的组件对象模型建立与该目标程序之间的连接,包括:
根据该窗口句柄调用该预设的组件对象模型,建立与该目标程序之间的连接。
可选地,该获取该目标程序中的web控件的控件类名,包括:
通过对象识别工具获取该控件类名。
可选地,该根据该网页文档对象定位该web控件中的元素,包括:
遍历该网页文档对象中标签名为指定标签名的元素。
根据本发明实施例的第二方面,提供了一种定位控件中的元素的装置,该装置用于电子设备中,包括:
第一获取模块,用于获取目标程序的主UI库类名和程序名;
第二获取模块,用于获取该目标程序中的web控件的控件类名,该控件类名为该web控件对外封装可见的类名;
第三获取模块,用于通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象;
定位模块,用于根据该网页文档对象定位该web控件中的元素。
可选地,该第二获取模块,包括:
查找单元,用于通过该目标程序的主UI库类名和程序名查找该目标程序;
连接建立单元,用于调用预设的组件对象模型建立与该目标程序之间的连接;
读取单元,用于根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象。
可选地,该查找单元,具体用于在当前运行的应用程序窗口中,查找该目标程序的主UI库类名和程序名对应窗口的窗口句柄;
该连接建立单元,具体用于根据该窗口句柄调用该预设的组件对象模型,建立与该目标程序之间的连接。
可选地,该第二获取模块,具体用于通过对象识别工具获取该控件类名。
可选地,该定位模块,具体用于遍历该网页文档对象中标签名为指定标签名的元素。
本发明实施例提供的技术方案可以包括以下有益效果:
通过获取目标程序的主UI库类名和程序名;获取该目标程序中的web控件的控件类名,该控件类名为该web控件对外封装可见的类名;通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象;根据该网页文档对象定位该web控件中的元素,解决了相关技术中常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素的问题,达到了扩展自动化测试的应用场景,提高对企业自主开发的UI界面内嵌的web控件的测试效率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种定位控件中的元素的方法的流程图;
图2是根据另一示例性实施例示出的一种定位控件中的元素的方法的流程图;
图3是根据一示例性实施例示出的一种定位控件中的元素的装置的框图;
图4是根据另一示例性实施例示出的一种定位控件中的元素的装置的框图;
图5是根据一示例性实施例示出的一种设备的框图;
图6是根据一示例性实施例示出的一种设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例提供的方法,可应用于安装运行应用程序的电子设备中。例如,电子设备包括但不限于PC(PersonalComputer,个人计算机)、手机、平板电脑、膝上型电脑和可穿戴设备等电子设备。其中,应用程序可以是内嵌有Web浏览控件的Windows程序,可选的,应用程序还可以是运行在Mac系统、Unix系统或Linux系统等上的程序。内嵌有Web浏览控件的应用程序通常具备打开网页,提供网页中的图片、文字、视频以及文本输入框和按钮等内容。为了便于描述,在下述方法实施例中,仅以各步骤的执行主体为电子设备进行举例说明,但对此不构成限定。
图1是根据一示例性实施例示出的一种定位控件中的元素的方法的流程图,该方法可以用于电子设备中,该电子设备可以是PC、手机、平板电脑、膝上型电脑和可穿戴设备等电子设备,如图1所示,该方法可以包括如下几个步骤。
在步骤101中,获取目标程序的主UI库类名和程序名。
在步骤102中,获取目标程序中的web控件的控件类名,该控件类名为web控件对外封装可见的类名。
在步骤103中,通过目标程序的主UI库类名、程序名以及控件类名获取web控件的网页文档对象。
本发明实施例所示的方法应用在window系统中时,可以使用pywincom库,通过自编代码以com(ComponentObjectModel,组件对象模型)组件来调用windows程序,从而实现与目标程序的基本通讯,其中,pywincom库为Python扩展第三方库,主要用于以组件对象模型的调用形式与windows应用程序进行通讯。通过上述方法,电子设备可以查找在当前计算机中所有运行的窗口程序中,基于主UI库类名、程序名以及控件类名定位web控件。此操作主要确认是需要定位本地计算机下哪个应用程序下对应的web控件。
找到要定位的web控件后,通过组件对象模型的Dispatch方式调用后(Dispatch主要是用于组件对象模型与windows程序建立通讯桥梁),最终获取返回网页文档对象。
在步骤104中,根据该网页文档对象定位web控件中的元素。
综上所述,本实施例提供的方法,通过获取目标程序的主UI库类名和程序名;获取目标程序中的web控件的控件类名;通过目标程序的主UI库类名、程序名以及控件类名获取web控件的网页文档对象;根据该网页文档对象定位web控件中的元素,解决了相关技术中常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素的问题,达到了扩展自动化测试的应用场景,提高对企业自主开发的UI界面内嵌的web控件的测试效率的效果。
图2是根据另一示例性实施例示出的一种定位控件中的元素的方法的流程图,该方法可以用于电子设备中,该电子设备可以是PC、手机、平板电脑、膝上型电脑和可穿戴设备等电子设备,如图2所示,该方法可以包括如下几个步骤。
在步骤201中,通过对象识别工具获取目标程序的主UI库类名和程序名。
在步骤202中,通过对象识别工具获取目标程序中的web控件的控件类名。
其中,该控件类名为web控件对外封装可见的类名。
以在Windows系统中对控件类名进行获取为例,对象识别工具可以是微软程序MicrosoftSpy++或者Au3Info,获取该控件类名的方法是使用对象识别工具提供的查找窗口标识,用户使用鼠标将该查找窗口标识拖拽到目标程序标题上,对象识别工具即可以获取该目标程序的主UI库类名和程序名,类似的,用户使用鼠标将该查找窗口标识拖拽到目标程序中的web控件上,对象识别工具即可以获取该web控件的控件类名,之后,电子设备可以调用对象识别工具对应的接口自动获取该目标程序的主UI库类名、程序名以及该web控件的控件类名。
例如,一个内嵌有web控件的应用程序,该web控件带有的文本输入框、按钮、图片以及链接等内容通过对象识别工具识别得到的控件类名均为相同的浏览器类名,例如InternetExplorer_Server(互联网浏览器服务)。
在步骤203中,通过该目标程序的主UI库类名和程序名查找该目标程序。
可选地,在步骤203的其中一种可能的实现方式中,可以在当前运行的应用程序窗口中,查找该目标程序的主UI库类名和程序名对应窗口的窗口句柄。
比如,电子设备可以预先导入调用组件对象模型所需的库以及调用操作系统相关应用程序所需的库。这里以操作系统是Windows,计算机程序设计语言是python为例,展示部分导入python库的计算机编程语言代码,相关导入代码如下:
importwin32com
importwin32com.client
importwin32gui
importwin32con
importpythoncom
importwin32api
其中,Pythoncom、win32com和win32com.client三个库主要用于python代码调用win32应用程序的组件对象模型;Win32gui、win32con和win32api三个库主要用于python代码调用win32应用程序api,如获取程序名、窗口标题、窗口句柄等。
下面展示一种能实现的通过该控件类名,读取该网页文档对象的计算机编程语言代码,相关代码如下。
MainHwnd=win32gui.FindWindow(‘A_ui,u’‘程序名’)
这里使用的方法为win32gui.FindWindow,该方法仅为示例性展示其中一种能够实现本方案的途径,不对本方案构成限制。此处win32gui.FindWindow方法根据指定的目标程序的UI库类名“A_ui”和目标程序的“程序名”查找到目标程序的窗口句柄,并将该目标程序的窗口句柄返回给变量MainHwnd保存。
在步骤204中,调用预设的组件对象模型建立与该目标程序之间的连接。
可选地,在步骤204的其中一种可能的实现方式中,可以根据目标程序的窗口句柄调用该预设的组件对象模型,以建立与该目标程序之间的连接。
下面展示一种根据窗口句柄查找目标程序的web控件的控件类名的方法,该方法可通过计算机程序设计语言代码来实现,相关代码如下。
defgetIEServer(hwnd,ieServer):
ifwin32gui.GetClassName(hwnd)==‘InternetExplorer_Server’:
ieServer.append(hwnd)
其中,本段代码内寻找的目标程序的web控件的控件类名为InternetExplorer_Server。
在步骤205中,根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象。
这里以操作系统是Windows,计算机程序设计语言是python为例,展示部分导入python库的计算机编程语言代码,相关代码如下。
其中,窗口句柄为mainHwnd,本段代码通过将目标程序窗口句柄mainHwnd和获取内嵌Web浏览器getIEServer的方法传给win32gui.EnumChildWindows方法,然后通过代码调用预设的组件对象模型的功能,并获得目标程序的Web控件的文档对象,本处的文档对象为document,通过变量doc来保存。
在步骤206中,根据该网页文档对象定位该web控件中的元素。
电子设备获取网页文档对象后,即可如同在网页浏览器中定位网页元素一样,来实现定位内嵌web对象下的网页子元素,最终实现以程序代码的形式来对网页子元素进行控制,从而实现对当windows应用程序内嵌web网页对象时,对网页对象中的子元素进行测试或者其它自动化操作。
可选地,在步骤206的其中一种可能的实现方式中,可以通过遍历该网页文档对象中标签名为指定标签名的元素,来实现定位该web控件中的元素。
例如,可通过如下代码段实现,遍历该网页文档对象中标签名为指定标签名的元素的功能。
其中,本例是获取所有标签名为a的集合且进行遍历操作,若在A标签元素中含有fun_Gotham,则进行点击操作。
在步骤206的另一种可能的实现方式中,可以根据网页文档对象定位web控件中的元素,并打印出web控件中的文档元素,其中一段示例性的代码如下。
printdoc.body.outerHTML
其中,doc是web控件中的文档,所需打印的文档部分为body。
在步骤206的还一种可能的实现方式中,可以根据网页文档对象定位web控件中的元素,并根据该元素提供的入口执行指定程序,其中一段示例性的代码如下。
其中,XXXX、YYYY和ZZZZ为3个待执行的指定程序的名称。“进入游戏”为根据网页文档对象定位出的web控件中的元素提供的入口的名称。
综上所述,本发明实施例提供的方法,通过获取目标程序的主UI库类名和程序名;通过对象识别工具获取该控件类名;通过该目标程序的主UI库类名和程序名查找该目标程序;调用预设的组件对象模型建立与该目标程序之间的连接;根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象;根据该网页文档对象定位该web控件中的元素,解决了相关技术中常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素的问题,达到了扩展自动化测试的应用场景,提高对企业自主开发的UI界面内嵌的web控件的测试效率的效果。
图3是根据一示例性实施例提供的一种定位控件中的元素的装置的框图。装置可应用于电子设备中,该电子设备可以是PC、手机、平板电脑、膝上型电脑和可穿戴设备等电子设备,如图3所示,该装置可包括:第一获取模块301、第二获取模块302、第三获取模块303和定位模块304。
第一获取模块301,用于获取目标程序的主UI库类名和程序名。
第二获取模块302,用于获取该目标程序中的web控件的控件类名,该控件类名为该web控件对外封装可见的类名。
第三获取模块303,用于通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象。
定位模块304,用于根据该网页文档对象定位该web控件中的元素。
综上所述,本实施例提供的装置,通过获取目标程序的主UI库类名和程序名;获取目标程序中的web控件的控件类名;通过目标程序的主UI库类名、程序名以及控件类名获取web控件的网页文档对象;根据该网页文档对象定位web控件中的元素,解决了相关技术中常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素的问题,达到了扩展自动化测试的应用场景,提高对企业自主开发的UI界面内嵌的web控件的测试效率的效果。
图4是根据另一示例性实施例提供的一种定位控件中的元素的装置的框图。装置可应用于上述电子设备中,该电子设备可以是PC、手机、平板电脑、膝上型电脑和可穿戴设备等电子设备,如图4所示,该装置可包括:第一获取模块401、第二获取模块402、第三获取模块403和定位模块404。
第一获取模块401,用于获取目标程序的主UI库类名和程序名。
第二获取模块402,用于获取该目标程序中的web控件的控件类名,该控件类名为该web控件对外封装可见的类名。
第三获取模块403,用于通过该目标程序的主UI库类名、程序名以及该控件类名获取该web控件的网页文档对象。
其中,第三获取模块403,具体用于遍历该网页文档对象中标签名为指定标签名的元素。
可选地,第三获取模块403包括:查找单元403a、连接建立单元403b和读取单元403c。
查找单元403a,用于通过该目标程序的主UI库类名和程序名查找该目标程序。
其中,查找单元403a,具体用于在当前运行的应用程序窗口中,查找该目标程序的主UI库类名和程序名对应窗口的窗口句柄。
连接建立单元403b,用于调用预设的组件对象模型建立与该目标程序之间的连接。
其中,连接建立单元403b,具体用于根据该窗口句柄调用该预设的组件对象模型,建立与该目标程序之间的连接。
读取单元403c,用于根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象。
定位模块404,用于根据该网页文档对象定位该web控件中的元素。
综上所述,本发明实施例提供的装置,通过获取目标程序的主UI库类名和程序名;通过对象识别工具获取该控件类名;通过该目标程序的主UI库类名和程序名查找该目标程序;调用预设的组件对象模型建立与该目标程序之间的连接;根据该控件类名,通过建立的该连接从该目标程序读取该网页文档对象;根据该网页文档对象定位该web控件中的元素,解决了相关技术中常用的自动化工具仅能识别到一些windows的标准控件元素,无法识别企业自主开发的UI界面中的web控件元素的问题,达到了扩展自动化测试的应用场景,提高对企业自主开发的UI界面内嵌的web控件的测试效率的效果。
图5是根据本发明一个实施例提供的设备500的结构示意图。例如,设备500可以是一个PC。参照图5,设备500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理部件522执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述定位控件中的元素的方法。
设备500还可以包括一个电源组件526被配置为执行设备500的电源管理,一个有线或无线网络接口550被配置为将设备500连接到网络,和一个输入输出(I/O)接口558。设备500可以操作基于存储在存储器532的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
请参考图6,其示出了本发明一个实施例提供的设备600的结构示意图。该电子设备可以是手机、平板电脑、膝上型电脑和可穿戴设备等电子设备。具体来讲:
设备600可以包括RF电路610、包括有一个或一个以上计算机可读存储介质的存储器620、输入单元630、显示单元640、传感器650、音频电路660、WiFi(wirelessfidelity,无线保真)模块670、包括有一个或者一个以上处理核心的处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器680处理;另外,将涉及上行的数据发送给基站。通常RF电路包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于GSM(GlobalSystemofMobilecommunication,全球移动通讯系统)、GPRS(GeneralPacketRadioService,通用分组无线服务)、CDMA(CodeDivisionMultipleAccess,码分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)、LTE(LongTermEvolution,长期演进)、电子邮件、SMS(ShortMessagingService,短消息服务)等。
存储器620可用于存储软件程序以及模块。处理器680通过运行存储在存储器620的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据设备600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器620还可以包括存储器控制器,以提供处理器680和输入单元630对存储器620的访问。
输入单元630可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元630可包括触敏表面631以及其他输入设备632。触敏表面631,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面631上或在触敏表面631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面631。除了触敏表面631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及设备100的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元640可包括显示面板641,可选的,可以采用LCD(LiquidCrystalDisplay,液晶显示器)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置显示面板641。进一步的,触敏表面631可覆盖在显示面板641之上,当触敏表面631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触敏表面631与显示面板641是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面631与显示面板641集成而实现输入和输出功能。
设备600还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在设备600移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于设备600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器621,传声器622可提供用户与设备600之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器621,由扬声器621转换为声音信号输出;另一方面,传声器622将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给另一设备,或者将音频数据输出至存储器620以便进一步处理。音频电路660还可能包括耳塞插孔,以提供外设耳机与设备600的通信。
WiFi属于短距离无线传输技术,设备600通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于设备600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是设备600的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行设备600的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器680可包括一个或多个处理核心;可选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
设备600还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源690还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,设备600还可以包括摄像头、蓝牙模块等,在此不再赘述。
设备600还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,使得电子设备600能够执行上述图1或图2所示的,由电子设备执行的定位控件中的元素的方法中的全部或者部分步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种定位控件中的元素的方法,其特征在于,所述方法包括:
获取目标程序的主用户界面UI库类名和程序名;
获取所述目标程序中的web控件的控件类名,所述控件类名为所述web控件对外封装可见的类名;
通过所述目标程序的主UI库类名、程序名以及所述控件类名获取所述web控件的网页文档对象;
根据所述网页文档对象定位所述web控件中的元素。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标程序的主UI库类名、程序名以及所述控件类名获取所述web控件的网页文档对象,包括:
通过所述目标程序的主UI库类名和程序名查找所述目标程序;
调用预设的组件对象模型建立与所述目标程序之间的连接;
根据所述控件类名,通过建立的所述连接从所述目标程序读取所述网页文档对象。
3.根据权利要求2所述的方法,其特征在于,所述通过所述目标程序的主UI库类名和程序名查找所述目标程序,包括:
在当前运行的应用程序窗口中,查找所述目标程序的主UI库类名和程序名对应窗口的窗口句柄;
所述调用预设的组件对象模型建立与所述目标程序之间的连接,包括:
根据所述窗口句柄调用所述预设的组件对象模型,建立与所述目标程序之间的连接。
4.根据权利要求1所述的方法,其特征在于,所述获取所述目标程序中的web控件的控件类名,包括:
通过对象识别工具获取所述控件类名。
5.根据权利要求1所述的方法,其特征在于,所述根据所述网页文档对象定位所述web控件中的元素,包括:
遍历所述网页文档对象中标签名为指定标签名的元素。
6.一种定位控件中的元素的装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标程序的主UI库类名和程序名;
第二获取模块,用于获取所述目标程序中的web控件的控件类名,所述控件类名为所述web控件对外封装可见的类名;
第三获取模块,用于通过所述目标程序的主UI库类名、程序名以及所述控件类名获取所述web控件的网页文档对象;
定位模块,用于根据所述网页文档对象定位所述web控件中的元素。
7.根据权利要求6所述的装置,其特征在于,所述第二获取模块,包括:
查找单元,用于通过所述目标程序的主UI库类名和程序名查找所述目标程序;
连接建立单元,用于调用预设的组件对象模型建立与所述目标程序之间的连接;
读取单元,用于根据所述控件类名,通过建立的所述连接从所述目标程序读取所述网页文档对象。
8.根据权利要求7所述的装置,其特征在于,所述查找单元,具体用于在当前运行的应用程序窗口中,查找所述目标程序的主UI库类名和程序名对应窗口的窗口句柄;
所述连接建立单元,具体用于根据所述窗口句柄调用所述预设的组件对象模型,建立与所述目标程序之间的连接。
9.根据权利要求6所述的装置,其特征在于,所述第二获取模块,具体用于通过对象识别工具获取所述控件类名。
10.根据权利要求6所述的装置,其特征在于,所述定位模块,具体用于遍历所述网页文档对象中标签名为指定标签名的元素。
CN201610057589.8A 2016-01-27 2016-01-27 定位控件中的元素的方法及装置 Active CN105740145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610057589.8A CN105740145B (zh) 2016-01-27 2016-01-27 定位控件中的元素的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610057589.8A CN105740145B (zh) 2016-01-27 2016-01-27 定位控件中的元素的方法及装置

Publications (2)

Publication Number Publication Date
CN105740145A true CN105740145A (zh) 2016-07-06
CN105740145B CN105740145B (zh) 2018-09-18

Family

ID=56246755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610057589.8A Active CN105740145B (zh) 2016-01-27 2016-01-27 定位控件中的元素的方法及装置

Country Status (1)

Country Link
CN (1) CN105740145B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008955A (zh) * 2017-12-15 2018-05-08 北京小米移动软件有限公司 显示自定义控件信息的方法、装置
CN108038059A (zh) * 2017-12-22 2018-05-15 广州酷狗计算机科技有限公司 界面遍历方法及装置
CN109032936A (zh) * 2018-07-13 2018-12-18 陈希 一种桌面自动化测试开发方法及系统
CN109144871A (zh) * 2018-08-17 2019-01-04 北京邮电大学 一种自动化测试元素的识别方法及装置
CN112182468A (zh) * 2020-10-14 2021-01-05 北京新纽科技有限公司 一种兼容客户端界面元素与网页页面元素的定位和解析方法
CN112328488A (zh) * 2020-11-09 2021-02-05 深圳证券通信有限公司 一种ui自动化测试的控件对象识别方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830958A (zh) * 2011-06-16 2012-12-19 奇智软件(北京)有限公司 一种获取界面控件信息的方法及系统
US20140053063A1 (en) * 2012-08-14 2014-02-20 Microsoft Corporation User interface control framework for stamping out controls using a declarative template
CN103645890A (zh) * 2013-11-29 2014-03-19 北京奇虎科技有限公司 一种用于在图形用户界面中定位控件的方法和装置
CN104391797A (zh) * 2014-12-09 2015-03-04 北京奇虎科技有限公司 Gui控件的识别方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830958A (zh) * 2011-06-16 2012-12-19 奇智软件(北京)有限公司 一种获取界面控件信息的方法及系统
US20140053063A1 (en) * 2012-08-14 2014-02-20 Microsoft Corporation User interface control framework for stamping out controls using a declarative template
CN103645890A (zh) * 2013-11-29 2014-03-19 北京奇虎科技有限公司 一种用于在图形用户界面中定位控件的方法和装置
CN104391797A (zh) * 2014-12-09 2015-03-04 北京奇虎科技有限公司 Gui控件的识别方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
厉旻 等: "自动化测试中基于GUI非标准控件的识别和应用", 《微计算机信息》 *
张金 等: "Web网页控件的智能识别及其自动化操作", 《计算机系统应用》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008955A (zh) * 2017-12-15 2018-05-08 北京小米移动软件有限公司 显示自定义控件信息的方法、装置
CN108008955B (zh) * 2017-12-15 2021-01-01 北京小米移动软件有限公司 显示自定义控件信息的方法、装置
CN108038059A (zh) * 2017-12-22 2018-05-15 广州酷狗计算机科技有限公司 界面遍历方法及装置
CN109032936A (zh) * 2018-07-13 2018-12-18 陈希 一种桌面自动化测试开发方法及系统
CN109032936B (zh) * 2018-07-13 2021-11-05 陈希 一种桌面自动化测试开发方法及系统
CN109144871A (zh) * 2018-08-17 2019-01-04 北京邮电大学 一种自动化测试元素的识别方法及装置
CN109144871B (zh) * 2018-08-17 2020-11-10 北京邮电大学 一种自动化测试元素的识别方法及装置
CN112182468A (zh) * 2020-10-14 2021-01-05 北京新纽科技有限公司 一种兼容客户端界面元素与网页页面元素的定位和解析方法
CN112328488A (zh) * 2020-11-09 2021-02-05 深圳证券通信有限公司 一种ui自动化测试的控件对象识别方法

Also Published As

Publication number Publication date
CN105740145B (zh) 2018-09-18

Similar Documents

Publication Publication Date Title
CN105824958B (zh) 一种查询日志的方法、装置和系统
CN105740145A (zh) 定位控件中的元素的方法及装置
CN106126411B (zh) 一种对被测程序代码进行测试的方法和装置
CN105528297A (zh) 对web页面进行测试的方法及装置
CN106547844B (zh) 一种用户界面的处理方法和装置
CN104065693A (zh) 一种网页应用中网络数据的访问方法、装置和系统
CN104699501B (zh) 一种运行应用程序的方法及装置
CN103399706B (zh) 页面交互方法、装置及终端
CN105847325A (zh) 应用客户端的调试方法及装置
CN104965831B (zh) 一种网址纠错方法、服务器、终端,及系统
CN105992026A (zh) 一种显示弹幕评论信息的方法和装置
CN106033467A (zh) 一种图片文件的分享方法,及装置
CN104135728A (zh) 网络连接方法及装置
CN105955597A (zh) 信息显示方法及装置
US20160308879A1 (en) Application-Based Service Providing Method, Apparatus, and System
CN105740419A (zh) 获取网页中动态加载内容的方法及装置
WO2014183438A1 (en) Method, apparatus, and communication system for allocating and managing voice channels
CN105807908A (zh) 一种切换工作模式的方法和装置
CN104092657A (zh) 信息传输的方法、设备及系统
CN105703808A (zh) 一种传输数据的方法和装置
CN106484615B (zh) 记录日志的方法和装置
CN105631059A (zh) 数据处理方法、数据处理装置及数据处理系统
CN106230919A (zh) 一种文件上传的方法和装置
CN104346176B (zh) 一种浏览器启动的方法及装置
CN104852944A (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
CB02 Change of applicant information

Address after: 510660 Guangzhou City, Guangzhou, Guangdong, Whampoa Avenue, No. 315, self - made 1-17

Applicant after: Guangzhou KuGou Networks Co., Ltd.

Address before: 510000 B1, building, No. 16, rhyme Road, Guangzhou, Guangdong, China 13F

Applicant before: Guangzhou KuGou Networks Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant