CN110532056B - 一种应用于用户界面中的控件识别方法及装置 - Google Patents
一种应用于用户界面中的控件识别方法及装置 Download PDFInfo
- Publication number
- CN110532056B CN110532056B CN201910838588.0A CN201910838588A CN110532056B CN 110532056 B CN110532056 B CN 110532056B CN 201910838588 A CN201910838588 A CN 201910838588A CN 110532056 B CN110532056 B CN 110532056B
- Authority
- CN
- China
- Prior art keywords
- control
- screenshot
- sub
- interface
- current
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000005259 measurement Methods 0.000 claims description 25
- 230000011218 segmentation Effects 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 11
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种应用于用户界面中的控件识别方法及装置,通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息,提高了控件识别的精确度及效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用于用户界面中的控件识别方法及装置。
背景技术
在用户与终端设备的交互过程中,常常会通过用户界面(userinterface,UI)进行交互操作,其中交互操作是基于UI控件实现的,如按钮、文本字段、定位栏、复选框、缩放按钮、切换按钮等,为保证控制的正常运行,需要对控件进行UI自动化测试,比较实际的UI显示结果与预期结果之间的差异,而在比较差异之前首先要识别当前控件的具体信息。
一般,对于UI控件的识别是基于控件的属性来识别,如appium测试工具通过uiautomatorviewer.bat工具来查看控件的属性,name定位对应于控件的text属性、id定位对应于控件的resource-id属性、class name定位对应于控件的class属性、xpath定位对应于控件的属性组合,通过对于这些属性的对比识别当前控件具体的信息。
但是,由于控件的属性并不会一直都存在,有时候会出现属性栏为空的情况,需要人工去筛选哪一些属性是可用于定位和识别控件的,影响控件识别的效率;而且,由于控件属性的不唯一性,可能会出现识别控件错误的问题,影响控件识别的准确性。
发明内容
有鉴于此,本申请第一方面提供一种应用于用户界面中的控件识别方法,可应用于用户界面的系统或程序过程中,具体包括:实时获取用户界面和所述用户界面对应的控制节点信息,所述用户界面用于确定界面截图;
根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;
确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系;
根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。
优选的,在本申请一些可能的实现方式中,所述根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图之后,所述方法还包括:
获取所述子截图的属性信息;
根据所述属性信息确定所述子截图的度量值或图片指纹,所述度量值包括长度、宽度或面积。
优选的,在本申请一些可能的实现方式中,所述根据所述关联关系识别当前用户界面中的界面控件信息,包括:
获取当前用户界面和所述当前用户界面对应的当前控制节点信息,所述当前用户界面用于确定当前界面截图;
根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图;
遍历与所述当前子截图相似度满足预设条件的所述子截图,并根据所述关联关系确定对应的界面控件信息,所述预设条件基于所述属性信息的相似度设定。
优选的,在本申请一些可能的实现方式中,所述遍历与所述当前子截图相似度满足预设条件的所述子截图,包括:
确定所述当前子截图的度量信息;
若所述当前子截图的度量信息与子截图的度量信息相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述遍历与所述当前子截图相似度满足预设条件的所述子截图,包括:
根据散列函数生成所述当前子截图的散列值,所述散列值用于指示所述当前子截图的图片指纹;
若所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图,包括:
获取所述控制节点的权重信息,所述权重信息用于指示所述控制节点的识别优先级;
根据所述控制节点信息确定多个所述控制节点的位置;
根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。
优选的,在本申请一些可能的实现方式中,所述根据所述关联关系识别当前用户界面中的界面控件,包括:
确定对于所述当前用户界面的操作指令信息;
根据所述操作指令信息确定应用于所述当前用户界面的界面控件;
所述根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
本申请第二方面提供另一种控件识别的装置,包括:获取单元,用于实时获取用户界面和所述用户界面对应的控制节点信息,所述用户界面用于确定界面截图;
切分单元,用于根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;
关联单元,用于确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系;
识别单元,用于根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。
优选的,在本申请一些可能的实现方式中,所述切分单元,还用于获取所述子截图的属性信息;
所述切分单元,还用于根据所述属性信息确定所述子截图的度量值或图片指纹,所述度量值包括长度、宽度或面积。
优选的,在本申请一些可能的实现方式中,所述识别单元,具体用于获取当前用户界面和所述当前用户界面对应的当前控制节点信息,所述当前用户界面用于确定当前界面截图;
所述识别单元,具体用于根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图;
所述识别单元,具体用于遍历与所述当前子截图相似度满足预设条件的所述子截图,并根据所述关联关系确定对应的界面控件信息,所述预设条件基于所述属性信息的相似度设定。
优选的,在本申请一些可能的实现方式中,所述切分单元,具体用于确定所述当前子截图的度量信息;
所述切分单元,具体用于若所述当前子截图的度量信息与子截图的度量信息相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述切分单元,具体用于根据散列函数生成所述当前子截图的散列值,所述散列值用于指示所述当前子截图的图片指纹;
所述切分单元,具体用于若所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述切分单元,具体用于获取所述控制节点的权重信息,所述权重信息用于指示所述控制节点的识别优先级;
所述切分单元,具体用于根据所述控制节点信息确定多个所述控制节点的位置;
所述切分单元,具体用于根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。
优选的,在本申请一些可能的实现方式中,所述识别单元,具体用于确定对于所述当前用户界面的操作指令信息;
所述识别单元,具体用于根据所述操作指令信息确定应用于所述当前用户界面的界面控件;
所述识别单元,具体用于所述根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
本申请第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的应用于用户界面中的控件识别的方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的应用于用户界面中的控件识别的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。由于节点的稳定性,实现了对于控件的稳定抓取,提高了控件识别的效率;且通过截图之间的对应关系确定当前界面的控件信息,排除了界面变化导致的识别不准确的情况,提高了控件识别的精确度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是用户界面的控件属性示意图;
图2为一种控件识别的流程架构图;
图3为本申请实施例提供的一种控件识别的方法的流程图;
图4为本申请实施例提供的另一种控件识别的方法的流程图;
图5为本申请实施例提供的一种应用场景的流程示意图;
图6为本申请实施例提供的一种控件识别程序的界面显示示意图;
图7为本申请实施例提供的控件识别装置的结构示意图;
图8为本申请实施例提供的另一种控件识别装置的结构示意图。
具体实施方式
本申请实施例提供了一种控件识别的方法以及相关装置,可以应用于支持用户界面的应用的运行过程中,具体通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。由于节点的稳定性,实现了对于控件的稳定抓取,提高了控件识别的效率;且通过截图之间的对应关系确定当前界面的控件信息,排除了界面变化导致的识别不准确的情况,提高了控件识别的精确度。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在用户与终端设备的交互过程中,常常会通过用户界面(userinterface,UI)进行交互操作,其中交互操作是基于UI控件实现的,如按钮、文本字段、定位栏、复选框、缩放按钮、切换按钮等,为保证控制的正常运行,需要对控件进行UI自动化测试,比较实际的UI显示结果与预期结果之间的差异,而在比较差异之前首先要识别当前控件的具体信息。
一般,对于UI控件的识别是基于控件的属性来识别,如图1所示,是用户界面的控件属性示意图,图中appium测试工具通过uiautomatorviewer.bat工具来查看控件的属性,name定位对应于控件的text属性、id定位对应于控件的resource-id属性、class name定位对应于控件的class属性、xpath定位对应于控件的属性组合,通过对于这些属性的对比识别当前控件具体的信息。
但是,由于控件的属性并不会一直都存在,有时候会出现属性栏为空的情况,需要人工去筛选哪一些属性是可用于定位和识别控件的,影响控件识别的效率;而且,由于控件属性的不唯一性,可能会出现识别控件错误的问题,影响控件识别的准确性。
为了解决上述问题,本申请提出了一种控件识别的方法,该方法应用于图2所示的控件识别的流程框架中,如图2所示,是一种控件识别的流程架构图,图中包括确定界面、裁剪截图、记录标签、历史控件数据库储存以及相似识别的过程;其中,对于用户与界面进行交互时,首先确定界面以及界面上的节点,并生成截图;然后根据节点对控件进行截图,并生成对应的标签信息以记录截图的属性,并与相关的控件产生对应关系;将标签以及对应关系记录在历史控件数据库中,当界面需要确定相关控件信息时,通过界面的截图与历史控件数据库的截图进行相似性比较,以得到对应的控件信息。
本申请能应用到包括手机QQ、微信、移动浏览器以及其他能够在Android设备上使用的所有Android应用,可以模拟人工在设备上进行上滑解锁、跳过引导页、登录、进入测试页面、点击控件、检查UI控件等操作。
可以理解的是,此处以三个控件为例进行说明,具体的也可以是更多或更少的控件数量等,具体的控件数量因实际场景而定,此处不做限定。
可以理解的是,上述控件识别系统可以运行于个人移动终端,也可以运行于服务器,还可以作为运行于第三方设备以提供终端设备的界面自动化监测过程。
可以理解的是,本申请所提供的方法可以为一种程序的写入,以作为硬件系统中的一种处理逻辑,也可以作为一种控件识别装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该控件识别装置通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。由于节点的稳定性,实现了对于控件的稳定抓取,提高了控件识别的效率;且通过截图之间的对应关系确定当前界面的控件信息,排除了界面变化导致的识别不准确的情况,提高了控件识别的精确度。
结合上述流程架构,下面将对本申请中控件识别的方法进行介绍,请参阅图3,图3为本申请实施例提供的一种控件识别的方法的流程图,本申请实施例至少包括以下步骤:
301、实时获取用户界面和用户界面对应的控制节点信息。
本实施例中,用户界面用于确定界面截图;控制节点信息可是根据用户界面对应的UI.xml获得,即通过Android SDK提供的测试工具uiautomator导出的XML布局结构文档,XML布局结构文档包含了当前界面所有控件节点的属性信息。
可选的,实时获取用户界面的过程可以是当监测到用户需要进行交互操作产生操作命令时发起的,例如如果操作命令关键字为启动应用程序(application,APP),则获取启动APP的操作时的界面;如果操作命令关键字为点击控件,则获取执行点击控件的操作时的界面;如果操作命令关键字为等待,则获取执行等待操作时的界面;如果操作命令关键字为输入文字,则获取执行输入文字操作的界面;如果操作命令关键字为上划页面,则获取执行上划页面操作的界面;如果操作命令关键字为自动检查或检查元素,则获取执行自动检查操作的界面;具体的场景因实际情况而定,此处不做限定。
302、根据控制节点信息确定多个控制节点的位置,并将界面截图基于控制节点进行切分,以得到多个子截图。
本实施例中,可以根据UI.xml里的bounds获取控制节点的位置;对于界面截图的切分可以是根据控制节点的位置进行的,即根据控制节点确定控件的位置,然后对于控件包括的多个或一个节点进行确定,将这些节点闭合性连接,以确定截图的区域。
在一种可能的场景中,一个界面中可能存在多个控件,此时可以为不同的控件设置权重信息,即为控件包含的控制节点设置权重信息,其中,权重信息用于指示所述控制节点的识别优先级;然后根据所述控制节点信息确定多个所述控制节点的位置;接下来根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。通过按照优先级次序对界面进行切分,保证的主要控件的完整性,以及在不同场景中的适用性;例如:对于登录界面,可以设置账号输入节点的权重最高,在截图过程中,可以优先保证账号输入的完整性,保证控制功能的体现。
可选的,在根据多个控制节点获取子截图之后,可以对子截图的信息进行储存,具体的,可以对子截图进行分类和标记,并进行命名,以便于调用时通过使用时输入命名,即可查询历史的属性信息。
可以理解的是,对于子截图进行分类和标记,并进行命名可以是基于子截图的属性信息,其中,属性信息可以包括人为设置或自动设置的标签信息,例如:对于登录界面的子截图,设置标签为输入;对于解锁界面的子截图,设置标签为解锁;具体的标签命名方式可以为相关控件的功能体现,此处不做限定。
另外,由于同类标签中可能存在相似的控件,为对这些控件进行识别,对于子截图的属性信息还可以包括子截图的度量值或图片指纹,其中,度量值可以包括:子截图的长度、宽度、面积、长宽比或面积占界面的比等,具体的度量方式因实际场景而定,此处不做限定。
对于子截图的图片指纹,可以是将子截图输入散列函数以生成唯一的散列值,当需要调用该子截图时以及相关的信息时,直接输入散列值进行搜寻即可。
303、确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系。
本实施例中,界面控件可能包括多个控制节点,对于同一界面控件内的控制节点可以设置相同的标签。
在一种可能的场景中,如果UI的背景发生了变化,或者所识别的控件是按钮型控件,当按钮状态发生了改变,会出现用图片相似度识别不到的问题。为解决该问题,可以通过对于子截图进行实时的获取,相应的,即建立各个时刻所述界面控件与所述子截图之间的关联关系,当需要识别控件时,对多个时刻下的关联关系进行选择即可保证识别过程的正常运行。
可选的,对于获取的各个时刻的对应关系,可以将其存储在历史控件数据库中,并根据吧标签进行分类,或设置先关的命名规则,例如:0代表输入控件,1代表解锁控件等。
304、根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。
本实施例中,通过上述步骤303中关联关系的获取并储存,当需要识别当前界面的界面控件信息时,可以直接通过截图之间的相似性进行界面控件信息的调用即可;即对于当前用户界面根据控制节点进行截图操作,然后根据截图与储存的截图之间的相似性确定对应的界面控件信息。
可选的,由于上述步骤中介绍了对于子截图设置标签的过程,可以根据当前用户界面的标签进行初步的截图筛选,例如当前用户界面为用户登录界面,则可以在历史控件数据库中遍历关键字输入,然后在筛选的结果中进行截图的相似性识别过程。具体的,首先确定对于所述当前用户界面的操作指令信息;然后根据所述操作指令信息确定应用于所述当前用户界面的界面控件;接下来根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
结合上述实施例可知,通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。由于节点的稳定性,实现了对于控件的稳定抓取,提高了控件识别的效率;且通过截图之间的对应关系确定当前界面的控件信息,排除了界面变化导致的识别不准确的情况,提高了控件识别的精确度。
由于第二类数据与第一类数据的对应关系,对于第二读取路径的获取过程可以进行一些优化,如图4所示,图4为本申请实施例提供的另一种控件识别的方法的流程图,本申请实施例至少包括以下步骤:
401、实时获取用户界面和用户界面对应的控制节点信息。
402、根据控制节点信息确定多个控制节点的位置,并将界面截图基于控制节点进行切分,以得到多个子截图。
403、确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系。
本实施例中,步骤401-403与图3中的步骤301-303相似,相关特征描述可以进行参照,此处不做赘述。
404、为界面控件与子截图之间建立关联关系,并设置标签信息,以建立历史控件数据库。
本实施例中,历史控件数据库中包含了界面控件与子截图的关联关系,即通过确定子截图即可调用对应的界面控件及其相关信息;而对于子截图可以为其设置标签信息,标签信息可以基于子截图的功能、度量值、图片指纹或其他具有标示性的符号设置。
可选的,可以根据上述标签信息对历史控件数据库中的子截图进行分类,以便于调用过程中搜索对象的筛选过程。
405、获取当前用户界面和所述当前用户界面对应的当前控制节点信息。
本实施例中,对于当前用户界面的信息获取过程可以是当监测到用户需要进行交互操作产生操作命令时发起的,例如如果操作命令关键字为启动应用程序APP,则获取启动APP的操作时的界面;如果操作命令关键字为点击控件,则获取执行点击控件的操作时的界面;如果操作命令关键字为等待,则获取执行等待操作时的界面;如果操作命令关键字为输入文字,则获取执行输入文字操作的界面;如果操作命令关键字为上划页面,则获取执行上划页面操作的界面;如果操作命令关键字为自动检查或检查元素,则获取执行自动检查操作的界面;具体的场景因实际情况而定,此处不做限定。
406、根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图。
本实施例中,对于当前界面截图的切分过程,可以是针对当前界面中的主要控件进行,即对于当前界面是解锁时,确定解锁控件对应的多个节点并进行截图,可以理解的是,对于控件的选择过程可以是预先设定的,也可以是根据当前界面的标识信息确定的。
407、在历史控件数据库中遍历与当前子截图相似度满足预设条件的界面控件,并确定界面控件信息。
本实施例中,历史控件数据库中遍历与当前子截图相似度满足预设条件的界面控件的过程可以基于以下方面进行。
首先,预设条件可以基于当前子截图的度量信息确定,即当所述当前子截图的度量信息与子截图的度量信息相比相似度达到一定阈值,则将所述当前子截图与该相似的所述子截图关联并调用相关的控件信息。其中,对于度量信息可以是长宽比,例如:当前子截图的长宽比为0.5,即遍历历史控件数据库中长宽比为0.5的子截图,然后进行标签的对比;对于度量信息可以是面积比,即当前子截图的面子占界面面积的比值,例如:当前子截图的面积比为0.1,即遍历历史控件数据库中面积比为0.1的子截图,然后进行标签的对比。
其次,预设条件还可以基于当前子截图的图片指纹确定,即当所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联并调用相关的控件信息。
可以理解的是,对于上述预设条件的设置方法在实际应用中可以是上述示例中的一种也可以是多种的组合,具体形式因实际场景而定,此处不做限定。
下面结合一种具体的使用场景对本申请根据第二读取路径对相关资源进行读取的过程进行说明,如图5所示,是本申请实施例提供的一种应用场景的流程示意图;首先,执行操作命令、获取操作命令关键字,可选的,如果操作命令关键字为启动app,执行启动app的操作;如果操作命令关键字为点击控件,执行点击控件的操作;如果操作命令关键字为等待,执行等待操作;如果操作命令关键字为输入文字,执行输入文字操作;如果操作命令关键字为上划页面,执行上划页面操作;如果操作命令关键字为自动检查或检查元素,执行自动检查操作;否则报错执行命令不可识别。对于上述各个操作均可以记录并储存在data中,以便于进行对应操作时的储存过程。
当确定操作后,获取当前activity信息,即包含界面的选择信息;然后获取UI.xml文件,并获取当前页面截图,接下来把UI.xml文件里的节点转成ui_list,并从ui_list里取出节点的bounds值,使用裁减算法对节点所代表的控件进行裁减成控件截图,增加控件的面积比、宽高比、图片指纹3个维度的属性,添加到ui_list中并存储到node.json文件中,再把node.json转成node.xlsx。
对于上述子截图的信息,可以遍历每个页面的node.json文件,给每个节点所代表的控件增加额外的标签属性alias和权重属性xx_weight。然后生成summer文件:遍历data文件夹里的所有页面里的node.json,把所有页面的所有控件写入summer.xlsx中,以作为历史控件数据库进行存储。
当需要进行当前界面控件的识别时,根据当前界面名称page和控件标签alias信息,对比summer.xlsx文件,找出当前activity上的唯一元素。首先从summer文件里获取到执行命令参数里对应page和alias的节点,从当前页面的ui_list节点里对比查找与summer文件里所获取的节点最相似的节点,即为所要识别的控件节点,即可根据该节点的属性进行对于当前界面的UI自动化监测过程。
在一种可能的显示方式中,可以采用如图6所述的显示方式,图6为本申请实施例提供的一种控件识别程序的界面显示示意图。该界面可以运行于基于本申请方法设置的UI自动化监测程序中,该界面可以包括多个界面中对于多个控件的匹配过程,用户可以通过点击详情按钮知晓对应控件的标签信息、长宽比以及图片指纹,以便于对控件信息进行核实,一方面提高了匹配过程的精确性,另一方面保证了相关人员对于控件信息的监测过程,即确定控件信息是否属实。
可以理解的是,上述实施例中设计的参数或步骤均可在该界面中进行显示,此处不做限定。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图7,图7为本申请实施例提供的控件识别装置的结构示意图,控件识别装置700包括:
获取单元701,用于实时获取用户界面和所述用户界面对应的控制节点信息,所述用户界面用于确定界面截图;
切分单元702,用于根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;
关联单元703,用于确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系;
识别单元704,用于根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。
优选的,在本申请一些可能的实现方式中,所述切分单元702,还用于获取所述子截图的属性信息;
所述切分单元702,还用于根据所述属性信息确定所述子截图的度量值或图片指纹,所述度量值包括长度、宽度或面积。
优选的,在本申请一些可能的实现方式中,所述识别单元704,具体用于获取当前用户界面和所述当前用户界面对应的当前控制节点信息,所述当前用户界面用于确定当前界面截图;
所述识别单元704,具体用于根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图;
所述识别单元704,具体用于遍历与所述当前子截图相似度满足预设条件的所述子截图,并根据所述关联关系确定对应的界面控件信息,所述预设条件基于所述属性信息的相似度设定。
优选的,在本申请一些可能的实现方式中,所述切分单元702,具体用于确定所述当前子截图的度量信息;
所述切分单元702,具体用于若所述当前子截图的度量信息与子截图的度量信息相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述切分单元702,具体用于根据散列函数生成所述当前子截图的散列值,所述散列值用于指示所述当前子截图的图片指纹;
所述切分单元702,具体用于若所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联。
优选的,在本申请一些可能的实现方式中,所述切分单元702,具体用于获取所述控制节点的权重信息,所述权重信息用于指示所述控制节点的识别优先级;
所述切分单元702,具体用于根据所述控制节点信息确定多个所述控制节点的位置;
所述切分单元702,具体用于根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。
优选的,在本申请一些可能的实现方式中,所述识别单元704,具体用于确定对于所述当前用户界面的操作指令信息;
所述识别单元704,具体用于根据所述操作指令信息确定应用于所述当前用户界面的界面控件;
所述识别单元704,具体用于所述根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
通过实时获取用户界面和所述用户界面对应的控制节点信息;然后根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;并确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系,接下来根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息。由于节点的稳定性,实现了对于控件的稳定抓取,提高了控件识别的效率;且通过截图之间的对应关系确定当前界面的控件信息,排除了界面变化导致的识别不准确的情况,提高了控件识别的精确度。
本申请实施例还提供了一种控件识别装置,请参阅图8,图8是本申请实施例提供的另一种控件识别装置的结构示意图,该控件识别装置800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对控件识别装置中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在控件识别装置800上执行存储介质830中的一系列指令操作。
控件识别装置800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由控件识别装置所执行的步骤可以基于该图8所示的控件识别装置结构。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有控件识别指令,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中控件识别装置所执行的步骤。
本申请实施例中还提供一种包括控件识别指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图2至图6所示实施例描述的方法中控件识别装置所执行的步骤。
本申请实施例还提供了一种控件识别系统,所述控件识别系统可以包含图7所描述实施例中的控件识别装置,或者图8所描述的控件识别装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,控件识别装置,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种应用于用户界面中的控件识别方法,其特征在于,包括:
实时获取用户界面和所述用户界面对应的控制节点信息,所述用户界面用于确定界面截图;
根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;
确定所述控制节点对应的界面控件,以建立各个时刻所述界面控件与所述子截图之间的关联关系;
根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息;
所述根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图之后,所述方法还包括:
获取所述子截图的属性信息;
根据所述属性信息确定所述子截图的度量值或图片指纹,所述度量值包括长度、宽度或面积。
2.根据权利要求1所述的方法,其特征在于,所述根据所述关联关系识别当前用户界面中的界面控件信息,包括:
获取当前用户界面和所述当前用户界面对应的当前控制节点信息,所述当前用户界面用于确定当前界面截图;
根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图;
遍历与所述当前子截图相似度满足预设条件的所述子截图,并根据所述关联关系确定对应的界面控件信息,所述预设条件基于所述属性信息的相似度设定。
3.根据权利要求2所述的方法,其特征在于,所述遍历与所述当前子截图相似度满足预设条件的所述子截图,包括:
确定所述当前子截图的度量信息;
若所述当前子截图的度量信息与子截图的度量信息相比满足预设条件,则将所述当前子截图与所述子截图关联。
4.根据权利要求2所述的方法,其特征在于,所述遍历与所述当前子截图相似度满足预设条件的所述子截图,包括:
根据散列函数生成所述当前子截图的散列值,所述散列值用于指示所述当前子截图的图片指纹;
若所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图,包括:
获取所述控制节点的权重信息,所述权重信息用于指示所述控制节点的识别优先级;
根据所述控制节点信息确定多个所述控制节点的位置;
根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述关联关系识别当前用户界面中的界面控件,包括:
确定对于所述当前用户界面的操作指令信息;
根据所述操作指令信息确定应用于所述当前用户界面的界面控件;
根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
7.一种应用于用户界面中的控件识别装置,其特征在于,包括:
获取单元,用于实时获取用户界面和所述用户界面对应的控制节点信息,所述用户界面用于确定界面截图;
切分单元,用于根据所述控制节点信息确定多个控制节点的位置,并将所述界面截图基于所述控制节点进行切分,以得到多个子截图;
关联单元,用于确定所述控制节点对应的界面控件,以建立所述界面控件与所述子截图之间的关联关系;
识别单元,用于根据所述关联关系识别当前用户界面中的界面控件,以得到所述当前用户界面的界面控件信息;
所述切分单元,还用于获取所述子截图的属性信息;
所述切分单元,还用于根据所述属性信息确定所述子截图的度量值或图片指纹,所述度量值包括长度、宽度或面积。
8.根据权利要求7所述的装置,其特征在于,所述识别单元,具体用于获取当前用户界面和所述当前用户界面对应的当前控制节点信息,所述当前用户界面用于确定当前界面截图;
所述识别单元,具体用于根据所述当前控制节点信息确定多个当前控制节点的位置,并将所述当前界面截图基于所述当前控制节点进行切分,以得到多个当前子截图;
所述识别单元,具体用于遍历与所述当前子截图相似度满足预设条件的所述子截图,并根据所述关联关系确定对应的界面控件信息,所述预设条件基于所述属性信息的相似度设定。
9.根据权利要求8所述的装置,其特征在于,所述切分单元,具体用于确定所述当前子截图的度量信息;
所述切分单元,具体用于若所述当前子截图的度量信息与子截图的度量信息相比满足预设条件,则将所述当前子截图与所述子截图关联。
10.根据权利要求8所述的装置,其特征在于,所述切分单元,所述切分单元,具体用于根据散列函数生成所述当前子截图的散列值,所述散列值用于指示所述当前子截图的图片指纹;
所述切分单元,具体用于若所述当前子截图的图片指纹与子截图的图片指纹相比满足预设条件,则将所述当前子截图与所述子截图关联。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述切分单元,所述切分单元,具体用于获取所述控制节点的权重信息,所述权重信息用于指示所述控制节点的识别优先级;
所述切分单元,具体用于根据所述控制节点信息确定多个所述控制节点的位置;
所述切分单元,具体用于根据所述权重信息依次对所述界面截图基于所述控制节点进行切分,以得到多个子截图。
12.根据权利要求8-10任一项所述的装置,其特征在于,所述切分单元,所述识别单元,具体用于确定对于所述当前用户界面的操作指令信息;
所述识别单元,具体用于根据所述操作指令信息确定应用于所述当前用户界面的界面控件;
所述识别单元,具体用于所述根据所述关联关系识别当前用户界面中的界面控件的界面控件信息。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至6中任一项所述的控件识别方法。
14.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1至6中任一项所述的控件识别方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838588.0A CN110532056B (zh) | 2019-09-05 | 2019-09-05 | 一种应用于用户界面中的控件识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838588.0A CN110532056B (zh) | 2019-09-05 | 2019-09-05 | 一种应用于用户界面中的控件识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532056A CN110532056A (zh) | 2019-12-03 |
CN110532056B true CN110532056B (zh) | 2024-04-26 |
Family
ID=68667064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910838588.0A Active CN110532056B (zh) | 2019-09-05 | 2019-09-05 | 一种应用于用户界面中的控件识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532056B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078552A (zh) * | 2019-12-16 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 页面显示异常的检测方法、装置及存储介质 |
CN112162930B (zh) * | 2020-10-21 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 一种控件识别的方法、相关装置、设备及存储介质 |
CN115048309B (zh) * | 2022-06-27 | 2023-03-07 | 广州掌动智能科技有限公司 | 无侵入app软件性能测试方法和系统 |
CN117033239B (zh) * | 2023-09-04 | 2024-06-11 | 镁佳(北京)科技有限公司 | 一种控件匹配方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843494A (zh) * | 2015-01-15 | 2016-08-10 | 中兴通讯股份有限公司 | 一种实现区域屏幕截图的方法、装置和终端 |
CN108496150A (zh) * | 2016-10-18 | 2018-09-04 | 华为技术有限公司 | 一种屏幕截图和读取的方法及终端 |
-
2019
- 2019-09-05 CN CN201910838588.0A patent/CN110532056B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843494A (zh) * | 2015-01-15 | 2016-08-10 | 中兴通讯股份有限公司 | 一种实现区域屏幕截图的方法、装置和终端 |
CN108496150A (zh) * | 2016-10-18 | 2018-09-04 | 华为技术有限公司 | 一种屏幕截图和读取的方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN110532056A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532056B (zh) | 一种应用于用户界面中的控件识别方法及装置 | |
CN110069463B (zh) | 用户行为处理方法、装置电子设备及存储介质 | |
CN109710508B (zh) | 测试方法、测试装置、测试设备及计算机可读存储介质 | |
US9292311B2 (en) | Method and apparatus for providing software problem solutions | |
CN107133165B (zh) | 浏览器兼容性检测方法及装置 | |
CN106095866B (zh) | 应用程序推荐方法、程序启动速度的优化方法和装置 | |
US11106916B2 (en) | Identifying segment starting locations in video compilations | |
CN112817866A (zh) | 录制回放方法、装置、系统、计算机设备以及存储介质 | |
CN106959919B (zh) | 基于测试路径图的软件测试方法及装置 | |
US10346450B2 (en) | Automatic datacenter state summarization | |
JPWO2010064317A1 (ja) | 運用管理支援プログラム、該プログラムを記録した記録媒体、運用管理支援装置、および運用管理支援方法 | |
CN112395189A (zh) | 测试视频自动识别方法、装置、设备及存储介质 | |
CN109359042B (zh) | 一种基于路径搜索算法的自动化测试方法 | |
CN106227502A (zh) | 一种获取硬盘固件版本的方法及装置 | |
US20230221847A1 (en) | Cognitive detection of user interface errors | |
CN109101297B (zh) | 一种页面的标识方法及装置 | |
CN115981901A (zh) | 一种针对交换机自动化测试的故障定位方法、设备及介质 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN112988457B (zh) | 一种数据备份方法、装置、系统及计算机设备 | |
CN113378525A (zh) | Pdf文档段落呈现方法、装置、存储介质及设备 | |
CN112882937A (zh) | 测试用例的处理方法、装置、计算机设备及存储介质 | |
CN106293897B (zh) | 组件自动化调度系统 | |
CN105359111A (zh) | 用户界面检查方法、设备及程序 | |
CN112417252B (zh) | 爬虫路径确定方法、装置、存储介质与电子设备 | |
CN114048147B (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 |