CN111221612B - 一种定位用户界面元素的方法、装置及介质 - Google Patents
一种定位用户界面元素的方法、装置及介质 Download PDFInfo
- Publication number
- CN111221612B CN111221612B CN202010006221.5A CN202010006221A CN111221612B CN 111221612 B CN111221612 B CN 111221612B CN 202010006221 A CN202010006221 A CN 202010006221A CN 111221612 B CN111221612 B CN 111221612B
- Authority
- CN
- China
- Prior art keywords
- target element
- unique
- positioning
- path
- attribute
- 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
Classifications
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本文公开了一种定位用户界面元素的方法、装置及介质,该方法包括:录制脚本;所述录制脚本包括:针对用户界面中的目标元素,从目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;从生成的M个唯一定位路径中选择出一个唯一定位路径。本文中从确定出的多个唯一定位路径中选择出一个对于用户来说最优的唯一定位路径,可以大幅减少元素定位失败的情况,提高脚步录制工具的健壮性,提升自动化测试的准确率,并且为用户提供选择的多种可能性,提高用户使用体验。
Description
技术领域
本文涉及脚本数据处理技术领域,尤其涉及一种定位用户界面元素的方法、装置及介质。
背景技术
在进行脚本录制时,常常需要对终端显示界面上的用户界面(User Interface)元素进行定位,并根据定位结果对UI元素进行相应的操作。在定位UI元素的过程中仍然存在一些问题,例如:常用的基于目标UI元素的唯一属性或者父子关系的定位方法在部分复杂场景会造成定位不准确;录制脚本时只录制点击目标元素的中心位置的操作造成脚本运行失败等。
发明内容
为克服相关技术中存在的问题,本文提供了一种定位用户界面元素的方法、装置及介质。
根据本文实施例的第一方面,提供了一种定位用户界面元素的方法,包括:录制脚本;
所述录制脚本包括:
针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;
从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数。
在一实施方式中,所述方法还包括:将所述M个唯一定位路径按优先级规则进行排序构成一序列;
从所述M个唯一定位路径中选择出一个唯一定位路径,包括:从所述序列中选择出优先级最高的一个唯一定位路径。
在一实施方式中,所述方法还包括:对所述序列进行第一次调整;
所述对所述序列进行第一次调整包括:判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号,在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级,在所述根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
在一实施方式中,所述方法还包括:
对所述序列进行第一次调整后,还包括对第一次调整后的序列进行第二次调整;
所述对第一次调整后的排序进行第二次调整,包括以下中的至少一个:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
在一实施方式中,所述优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
在一实施方式中,所述定位标识属性包括以下中的至少一种:
文本属性、资源标识属性、内容表示属性、类属性。
在一实施方式中,所述方法还包括:
在录制脚本的过程中,记录针对所述目标元素的点触位置,根据所述点触位置确定相比于所述目标元素的参考对像的相对位置信息;
执行所述脚本;
在执行所述脚本的过程中,根据所述参考对像和所述相对位置信息确定当前目标元素的点触位置,在所述点触位置执行点触操作。
在一实施方式中,所述方法还包括:根据所述参考对像和所述相对位置信息确定当前目标元素的点触位置后,判断所述点触位置是否位于所述目标元素的边缘区域,在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
在一实施方式中,所述方法还包括:
执行所述脚本;
在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。
根据本文实施例的第二方面,提供了一种定位用户界面元素的装置,包括:
用于录制脚本的录制模块;
所述录制模块包括:
第一选择模块,用于针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
生成模块,用于基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径:
第二选择模块,用于从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数。
在一实施方式中,所述装置还包括:
排序模块,用于将所述M个唯一定位路径按优先级规则进行排序构成一序列;
所述第二选择模块包括:
第三选择模块,用于从所述序列中选择出优先级最高的一个唯一定位路径。
在一实施方式中,所述装置还包括:
第一调整模块,用于对所述序列进行第一次调整;
所述第一调整模块包括:
第一判断模块,用于判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号;
位次调整模块,用于在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级;在根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
在一实施方式中,所述装置还包括:
第二调整模块,用于对第一次调整后的序列进行第二次调整;还用于使用以下方式中的至少一种进行第二次调整:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
在一实施方式中,所述优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
在一实施方式中,所述定位标识属性包括以下中的至少一种:
文本属性、资源标识属性、内容表示属性、类属性。
在一实施方式中,所述录制模块还包括:
记录模块,用于记录针对所述目标元素的点触位置;
第一确定模块,用于根据所述点触位置确定相比于所述目标元素的参考对像的相对位置信息;
所述装置还包括:
第一执行模块,用于执行所述脚本;
所述第一执行模块包括:
第二确定模块,用于在执行所述脚本的过程中,根据所述参考对像和所述相对位置信息确定当前目标元素的点触位置;
第二执行模块,用于在所述点触位置执行点触操作。
在一实施方式中,所述第一执行模块还包括:
第二判断模块,用于判断所述点触位置是否位于所述目标元素的边缘区域;
更新模块,用于在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
在一实施方式中,所述装置还包括:
第三执行模块,执行所述脚本;
定位恢复模块,用于在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。
根据本文实施例的第三方面,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种定位用户界面元素的方法,所述方法包括:
录制脚本;
所述录制脚本包括:
针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;
从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数。
本文的实施例提供的技术方案可以包括以下有益效果:根据目标元素的N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的一定位标识中的多个参数分别确定唯一定位路径,从确定出的多个唯一定位路径中选择出一个对于用户来说最优的唯一定位路径,相比现有技术中的定位方式,可以大幅减少元素定位失败的情况,提高脚步录制工具的健壮性,提升自动化测试的准确率,并且为用户提供选择的多种可能性,提高用户使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本文的实施例,并与说明书一起用于解释本文的原理。
图1是根据一示例性实施例示出的一种定位用户界面元素的方法的流程图;
图2是根据一示例性实施例示出的一种定位用户界面元素的方法中从目标元素的兄弟元素中选择具有唯一定位路径的兄弟元素的方法的流程图;
图3是根据一示例性实施例示出的一种定位用户界面元素的方法中从目标元素的兄弟元素的下级元素中选择具有唯一定位路径的兄弟元素的下级元素的方法的流程图;
图4是根据一示例性实施例示出的一种定位用户界面元素的方法中从目标元素的下级元素中选择具有唯一定位路径的兄弟元素的方法的流程图;
图5是根据一示例性实施例示出点击目标元素的操作示意图;
图6是根据一示例性实施例示出一种确定目标元素上的点触位置的相对位置信息的示意图。
图7是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图8是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图9是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图10是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图11是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图12是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图;
图13是根据一示例性实施例示出的一种定位用户界面元素的装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本文相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本文的一些方面相一致的装置和方法的例子。
现有方式中基于目标元素的唯一属性或者父子关系的定位方法在大部分情况下可准确定位到目标元素,但是在某些情况下依旧会导致目标元素定位错误。导致目标元素定位错误时,一般是由目标元素的索引(index)属性造成,例如:
某一推荐界面中包括三个元素,此三个元素分别是:AAA,BBB,CCC。此三个元素都只有resource-id属性。此三个元素在推荐界面上的索引属性值分别是1、2、3。BBB的子元素bbb具有文本属性,此文本属性的具体值是test。在界面上按索引属性值的顺序从上至少依次设置此三个元素,设置方式如下:
AAA
BBB
bbb
CCC
目标元素为CCC,因为目标元素CCC的index属性值为3,于是目标元素CCC的XPATH表示为//*[@resource-id=“recommend_id”][3]。
由于现在推荐界面都是基于用户定制化的,下次再打开该界面,界面中元素的index属性值变化,从而使元素的排序变化。例如:元素AAA、BBB、CCC的index属性值分别为1,3,2。在界面上按索引属性值的顺序从上至少依次设置此三个元素,设置方式如下:
AAA
CCC
BBB
bbb
此时目标元素CCC的index属性值为2,目标元素CCC的XPATH表示为//*[@resource-id=“recommend_id”][2]。
由上述内容可知,使用index参数对界面的元素生成XPATH的方式在上述情况下会造成同一目标元素在界面不同打开情况下的XPATH不一致,从而导致目标元素定位失败。
本公开实施例中提供一种定位用户界面元素的方法。参照图1,图1是根据一示例性实施例示出的一种定位用户界面元素的方法的流程图。如图1所示,此方法包括:
步骤S1,录制脚本。
步骤S1包括:
步骤S11,针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
步骤S12,基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径:
步骤S13,从生成的M个唯一定位路径中选择出一个唯一定位路径。
其中,定位标识属性是用于确定定位路径的标识属性;例如:定位标识属性包括以下中的至少一种:文本属性(text)、资源标识属性(resource_id)、内容表示属性(content_desc)、类(class)属性。N是大于1的整数,M是大于1并且小于或等于N+6的整数。
本方法中,根据目标元素的N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性中的多个参数分别确定唯一定位路径,从确定出的多个唯一定位路径中选择出一个对于用户来说最优的唯一定位路径,相比现有技术中的定位方式,可以大幅减少元素定位失败的情况,提高脚步录制工具的健壮性,提升自动化测试的准确率,并且为用户提供选择的多种可能性,提高用户使用体验。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,在图1所示的方法的基础上,图1所示的步骤S11中选择出的参数是目标元素的一定位标识属性,步骤S12中基于定位标识属性确定目标元素的唯一定位路径的方法包括:
在目标元素的此定位标识属性唯一时,根据此唯一的定位标识属性生成此目标元素的唯一定位路径。例如:步骤S11中目标元素的定位标识属性是资源标识,此资源标识的具体值为“com.miui.home:id/icon_icon”,基于此资源标识生成的此目标元素的唯一定位路径为//*[@resource_id=“com.miui.home:id/icon_icon”]。
在目标元素的此定位标识属性不唯一时,则此定位标识属性在当前界面存在索引标号,确定所有定位标识属性的值与所述目标元素的所有定位标识属性的值均相同的其它元素,确定所述目标元和所述其它元素的公共父元素,根据页面元素的设置顺序从所述公共父元素开始搜索所有定位标识属性均相同的元素,搜索到所述目标元素时,根据已搜索到的所有定位标识属性均相同的元素的个数确定所述目标元素的索引标号。根据目标元素的定位标识属性和所述索引标号确定目标元素的唯一定位路径。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,图1所示的步骤S11中选择出的参数是目标元素的兄弟元素,步骤S12中基于此目标元素的兄弟元素生成目标元素的唯一定位路径包括:从目标元素的兄弟元素中选择具有唯一定位路径的兄弟元素,根据具有唯一定位路径的兄弟元素的唯一定位路径生成目标元素的定位路径。
其中,从目标元素的兄弟元素中选择具有唯一定位路径的兄弟元素的方法包括:
步骤S21,确定目标元素的父元素;
步骤S22,判断目标元素的父元素下目标元素的所有兄弟元素是否均被选择过,如果是,表示未选择到具有唯一定位路径的兄弟元素,流程结束;如果否,转到步骤S23;
步骤S23,从父元素下目标元素的兄弟元素(即父元素下除目标元素外与目标元素深度相同的元素)中选择一未被选择过的兄弟元素作为当前元素;确定当前元素的定位路径。
步骤S24,判断当前元素的定位路径中是否包含index属性值,如果不包含index属性值,转到步骤S25,如果包含index属性值,转到步骤S22;
步骤S25,根据当前元素的定位路径生成目标元素的定位路径,流程结束。
其中,步骤S22中确定当前元素的定位路径的方法(即确定目标元素的兄弟元素的定位路径)为:判断当前元素是否具有取值是唯一值的定位标识属性,如果是,则表示当前元素的定位路径是由定位标识属性和相应的取值构成的,直接获取当前元素的定位路径;如果否,则表示当前元素的已有的定位路径是以类、类属性值和相应的索引标号组成的,逐层追溯当前元素的父元素直至追溯到具有取值是唯一值的定位标识属性的一父元素,获取此父元素的定位路径,根据此父元素的定位路径生成当前元素的定位路径。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,图1所示的步骤S11中选择出的参数是目标元素的兄弟元素的下级元素,步骤S12中基于此目标元素的兄弟元素的下级元素生成目标元素的唯一定位路径包括:从目标元素的兄弟元素的下级元素中选择具有唯一定位路径的元素,确定此具有唯一定位路径的元素与目标元素的深度差值,根据此具有唯一定位路径的元素的唯一定位路径和所述深度差值生成目标元素的定位路径。其中,根据此具有唯一定位路径的元素的唯一定位路径和所述深度差值生成目标元素的定位路径时,在此具有唯一定位路径的元素的唯一定位路径的基础上根据深度差值依次累加“/..”。
目标元素的兄弟元素的下级元素包括位于目标元素的兄弟元素的树结构下的所有元素,例如子元素、孙子元素、以及更深层的元素。
步骤S12中基于此目标元素的兄弟元素的下级元素生成目标元素的唯一定位路径包括:
步骤S31,确定目标元素的父元素,从父元素下目标元素的兄弟元素(即父元素下除目标元素外与目标元素深度相同的元素)中选择一未被选择过的兄弟元素作为当前兄弟元素;设置深度值(depth)的初始值为0。
步骤S32,将当前兄弟元素的一未被遍历过的第一级子元素作为当前元素,将深度值自加1,获取当前元素的定位路径,确定定位路径中是否存在索引标号,如果不存在,表示当前元素的定位路径唯一,根据当前元素的定位路径以及深度值生成目标元素的定位路径,流程结束;如果存在,重复执行步骤S32,直至当前兄弟元素的所有第一级子元素均被遍历过,跳转到步骤S33;
步骤S33,将当前兄弟元素的一未被遍历过的第二级子元素作为当前元素,将深度值自加1,获取当前元素的定位路径,确定定位路径中是否存在索引属性,如果不存在,表示当前元素的定位路径唯一,根据当前元素的定位路径以及深度值生成目标元素的定位路径,流程结束;如果存在,重复执行步骤S33,直至当前兄弟元素的所有第二级子元素均被遍历过,跳转到步骤S34;
……
以此类推,直至当前兄弟元素的所有的最后一级子元素均被遍历过,跳转到步骤S31,直至目标元素的所有兄弟元素(即父元素下除目标元素外与目标元素深度相同的元素)均被选择过。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,图1所示的步骤S11中选择出的参数是目标元素的下级元素,步骤S12中基于此目标元素的下级元素生成目标元素的唯一定位路径包括:从目标元素的下级元素中选择具有唯一定位路径的元素,确定此具有唯一定位路径的元素与目标元素的深度差值,根据此具有唯一定位路径的元素的唯一定位路径和所述深度差值生成目标元素的定位路径。其中,根据此具有唯一定位路径的元素的唯一定位路径和所述深度差值生成目标元素的定位路径时,在此具有唯一定位路径的元素的唯一定位路径的基础上根据深度差值依次累加“/..”。
步骤S12中基于此目标元素的下级元素生成目标元素的唯一定位路径包括:
步骤S41,将目标元素的一未被遍历过的第一级子元素作为当前元素,将深度值自加1,获取当前元素的定位路径,确定定位路径中是否存在索引标号,如果不存在,表示当前元素的定位路径唯一,根据当前元素的定位路径以及深度值生成目标元素的定位路径,流程结束;如果存在,重复执行步骤S41,直至目标元素的所有第一级子元素均被遍历过,跳转到步骤S42;
步骤S42,将目标元素的一未被遍历过的第二级子元素作为当前元素,将深度值自加1,获取当前元素的定位路径,确定定位路径中是否存在索引标号,如果不存在,表示当前元素的定位路径唯一,根据当前元素的定位路径以及深度值生成目标元素的定位路径,流程结束;如果存在,重复执行步骤S41,直至目标元素的所有第二级子元素均被遍历过,跳转到步骤S42。
……
以此类推,直至目标元素的所有的最后一级子元素均被遍历过。
本公开实施例中还提供一种定位用户界面元素的方法。在图1所示的方法的基础上,此方法还包括:
步骤S12’,将所述M个唯一定位路径按优先级规则进行排序构成一序列;
步骤S13中从所述M个唯一定位路径中选择出一个唯一定位路径,包括:
步骤S131,从所述序列中选择出优先级最高的一个唯一定位路径。
其中,可以根据使用需要优先级规则中不同情况下的目标元素的唯一定位路径的优先级。
下面的方式是其中的一种举例:
优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,在上一实施例的基础上,还包括:对所述序列进行第一次调整。其中,对所述序列进行第一次调整具体包括:判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号,在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级,在所述根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
本公开实施例中还提供一种定位用户界面元素的方法。在此方法中,在上一实施例的基础上,还包括:对所述序列进行第一次调整,还包括对第一次调整后的序列进行第二次调整。
其中,对第一次调整后的排序进行第二次调整,包括以下方法中的至少一个:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
在录制过程中,使用人员会对目标元素进行点击操作。图5示出一种点击目标元素时会出现的情况,如图5所示的目标控制元素包括两个子元素,位于上半部的子元素是图标,位于下半部的子元素是文本表示,中间的部分为空白区域,不属于任何元素。使用人员点击的位置位于图标和文本表示的中间位置时(如图5中的圆圈所示的位置),因为未点中任何元素,此点击不会产生有效的触发,从而界面也不会发生任何变化。在后续的脚本执行阶段会相应的产生执行失败的问题。
为解决此问题,本公开实施例还提供一种定位用户界面元素的方法。在此方法中,在图1所示的方法的基础上还包括:在录制脚本的过程中,记录针对所述目标元素的点触位置,根据所述点触位置确定相比于所述目标元素的参考对像的相对位置信息。
图6是根据一示例性实施例示出一种确定目标元素上的点触位置的相对位置信息的示意图。目标元素的参考对像包括上侧边和左侧边。如图6所示,圆圈处表示点触位置,此点触位置相对于目标元素上侧边的百分比为xp,xp=x/目标元素的宽,此点触位置相对于目标元素左侧边的百分比为yp,yp=y/目标元素的高。其中,目标元素的宽与上侧边的长度相同,目标元素的高与左侧边的长度相同。x表示点触位置距离左边距的长度,y表示点触位置距离上侧边的长度。
在后续步骤中,执行所述脚本;在执行所述脚本的过程中,根据所述参考对像和所述相对位置信息确定当前目标元素的点触位置,在所述点触位置执行点触操作。
例如:在脚本运行时,根据目标元素的参考对像以及在录制时记录的xp,yp参数,通过以下公式即可恢复录制时点击的位置:
x=ret.left+(int)(ret.width()*xp);
y=ret.top+(int)(ret.height()*yp);
其中ret.left是指目标元素的参数对像中的左侧边到屏幕最左边的距离,ret.top是指目标元素的参考对像的上边侧到屏幕最上边的距离,ret.width()是指目标元素的宽,ret.height()是指目标元素的高。
由于有时用户会在目标元素的边界下进行点击,为了提高脚本的执行成功率,在获取到x和y后,我们还会将该坐标与定义的目标元素边界阈值进行比较,即若点击坐标在距离目标元素边界的20%之内,那么我们将点击坐标调整到距离目标元素边界的20%,20%是根据我们的大量经验值得到。通过该方案,我们能保证在多分辨率的手机下保证点击效果的正确,提升脚本的执行成功率。
由于在录制脚本时的界面显示分辨率和执行脚本时的界面显示分辨率会有不同,例如在执行脚本时的界面显示分辨率小于录制脚本时的界面显示分辨率时,会出现点触位置的定位偏差的情况,所以在另一实施例中,根据所述相对位置信息确定当前目标元素的点触位置后,对点触位置进行更新,避免录制脚本时的界面显示分辨率和执行脚本时的界面显示分辨率的差别所导致的定位偏差,此更新具体包括:判断所述点触位置是否位于所述目标元素的边缘区域,在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
由于APP的多种版本存在兼容使用的情况,会产生由于不同版本中同一元素的定位标识属性修改的问题。例如录制过程中,在某一APP的A版本上且其目标元素对应的XPATH为//*[@text=“游戏中心”],即表示目标元素的文本属性的具体值为“游戏中心”;然而执行时却在该APP的B版本上且目标元素对应的XPATH为//*[@content-desc=“游戏中心”],表示目标元素的内容表示属性的名称文本属性的具体值为“游戏中心”。同时测试人员并不知晓不同版本中的定位标识属性的名称进行了互换,在这种情况下执行脚本必定会失败。
为解决此问题,本公开实施例还提供一种定位用户界面元素的方法。在图1所示的方法的基础上,在执行所述脚本后,在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。在所有的其它定位标识属性替换完毕并且仍然定位失败时,则表示因为版本更新出现了无法自动重定位的问题。通过发明人的大量分析发现,一般情况下,只需要在text,content-desc,resource-id三者之间转换即可解决APP多版本兼容问题。
本公开实施例还提供了一种定位用户界面元素的装置。参照图7,图7是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图7所示,此装置包括:用于录制脚本的录制模块70;
录制模块70包括:
第一选择模块701,用于针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
生成模块702,用于基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径:
第二选择模块703,用于从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数。
本公开实施例还提供了一种定位用户界面元素的装置。参照图8,图8是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图8所示,所述装置在图7所示装置的基础上还包括:
排序模块801,用于将所述M个唯一定位路径按优先级规则进行排序构成一序列;
第二选择模块703包括:
第三选择模块802,用于从所述序列中选择出优先级最高的一个唯一定位路径。
本公开实施例还提供了一种定位用户界面元素的装置。参照图9,图9是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图9所示,所述装置在图8所示装置的基础上还包括:
第一调整模块901,用于对所述序列进行第一次调整;
所述第一调整模块901包括:
第一判断模块,用于判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号;
位次调整模块,用于在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级;在根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
本公开实施例还提供了一种定位用户界面元素的装置。参照图10,图10是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图10所示,所述装置在图9所示装置的基础上还包括:
第二调整模块1001,用于对第一次调整后的序列进行第二次调整;还用于使用以下方式中的至少一种进行第二次调整:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
在上述实施例中,所述优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的子元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
所述定位标识属性包括以下中的至少一种:
文本属性、资源标识属性、内容表示属性、类属性。
本公开实施例还提供了一种定位用户界面元素的装置。参照图11,图10是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图11所示,此装置是在图7所示装置的基础构建的装置。此装置中,
录制模块70还包括:
记录模块1101,用于记录针对所述目标元素的点触位置;
第一确定模块1102,用于根据所述点触位置确定相比于所述目标元素的参考对像的相对位置信息;
此装置还包括:
第一执行模块110,用于执行所述脚本;
第一执行模块110包括:
第二确定模块1103,用于在执行所述脚本的过程中,根据所述参考对像和所述相对位置信息确定当前目标元素的点触位置;
第二执行模块1104,用于在所述点触位置执行点触操作。
本公开实施例还提供了一种定位用户界面元素的装置。参照图12,图12是根据一示例性实施例示出定位用户界面元素的装置的结构图。如图12所示,此装置在图11所示的基础上,其中的第一执行模块110还包括:
第二判断模块1201,用于判断所述点触位置是否位于所述目标元素的边缘区域;
更新模块1202,用于在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
本公开实施例还提供了一种定位用户界面元素的装置。此装置在图11所示的基础上,还包括:
第三执行模块,执行所述脚本;
定位恢复模块,用于在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。
本公开实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种定位用户界面元素的方法,所述方法包括:
录制脚本;
所述录制脚本包括:
针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;
从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数。
图13是根据一示例性实施例示出的一种定位用户界面元素的装置1300的框图。例如,装置1300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图13,装置1300可以包括以下一个或多个组件:处理组件1302,存储器1304,电力组件1306,多媒体组件1308,音频组件1310,输入/输出(I/O)的接口1312,传感器组件1314,以及通信组件1316。
处理组件1302通常控制装置1300的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1302可以包括一个或多个处理器1320来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1302可以包括一个或多个模块,便于处理组件1302和其他组件之间的交互。例如,处理组件1302可以包括多媒体模块,以方便多媒体组件1308和处理组件1302之间的交互。
存储器1304被配置为存储各种类型的数据以支持在设备1300的操作。这些数据的示例包括用于在装置1300上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1304可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件1306为装置1300的各种组件提供电力。电力组件1306可以包括电源管理系统,一个或多个电源,及其他与为装置1300生成、管理和分配电力相关联的组件。
多媒体组件1308包括在所述装置1300和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1308包括一个前置摄像头和/或后置摄像头。当设备1300处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1310被配置为输出和/或输入音频信号。例如,音频组件1310包括一个麦克风(MIC),当装置1300处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1304或经由通信组件1316发送。在一些实施例中,音频组件1310还包括一个扬声器,用于输出音频信号。
I/O接口1312为处理组件1302和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1314包括一个或多个传感器,用于为装置1300提供各个方面的状态评估。例如,传感器组件1314可以检测到设备1300的打开/关闭状态,组件的相对定位,例如所述组件为装置1300的显示器和小键盘,传感器组件1314还可以检测装置1300或装置1300一个组件的位置改变,用户与装置1300接触的存在或不存在,装置1300方位或加速/减速和装置1300的温度变化。传感器组件1314可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1314还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1314还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1316被配置为便于装置1300和其他设备之间有线或无线方式的通信。装置1300可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1316经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1316还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1300可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1304,上述指令可由装置1300的处理器1320执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本文的其它实施方案。本申请旨在涵盖本文的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本文的一般性原理并包括本文未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本文的真正范围和精神由下面的权利要求指出。
应当理解的是,本文并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本文的范围仅由所附的权利要求来限制。
Claims (19)
1.一种定位用户界面元素的方法,其特征在于,包括:录制脚本;
所述录制脚本包括:
针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;
从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数;
当选择出的 M个参数包括目标元素的兄弟元素时,基于所述目标元素的兄弟元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的所述兄弟元素中选择具有唯一定位路径的兄弟元素,根据所述具有唯一定位路径的兄弟元素的所述唯一定位路径生成所述目标元素的定位路径,所述兄弟元素的所述唯一定位路径不包含索引标号;
当选择出的 M个参数包括目标元素的兄弟元素的下级元素或目标元素的下级元素时,基于所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素中选择具有唯一定位路径的元素,确定所述具有唯一定位路径的元素与所述目标元素的深度差值,根据所述具有唯一定位路径的元素的所述唯一定位路径和所述深度差值生成所述目标元素的定位路径,所述元素的所述唯一定位路径不包含索引标号。
2.如权利要求1所述的方法,其特征在于,
所述方法还包括:将所述M个唯一定位路径按优先级规则进行排序构成一序列;
从所述M个唯一定位路径中选择出一个唯一定位路径,包括:从所述序列中选择出优先级最高的一个唯一定位路径。
3.如权利要求2所述的方法,其特征在于,
所述方法还包括:对所述序列进行第一次调整;
所述对所述序列进行第一次调整包括:判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号,在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级,在所述根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
4.如权利要求3所述的方法,其特征在于,
所述方法还包括:
对所述序列进行第一次调整后,还包括对第一次调整后的序列进行第二次调整;
所述对第一次调整后的排序进行第二次调整,包括以下中的至少一个:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述内容表示属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
5.如权利要求2所述的方法,其特征在于,
所述优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的下级元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的下级元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
6.如权利要求1、2、3、4或5中任一权利要求所述的方法,其特征在于,
所述定位标识属性包括以下中的至少一种:
文本属性、资源标识属性、内容表示属性、类属性。
7.如权利要求1所述的方法,其特征在于,
所述方法还包括:
在录制脚本的过程中,记录针对所述目标元素的点触位置,根据所述点触位置确定相比于所述目标元素的参考对象的相对位置信息;
执行所述脚本;
在执行所述脚本的过程中,根据所述参考对象和所述相对位置信息确定当前目标元素的点触位置,在所述点触位置执行点触操作。
8.如权利要求7所述的方法,其特征在于,
所述方法还包括:根据所述参考对象和所述相对位置信息确定当前目标元素的点触位置后,判断所述点触位置是否位于所述目标元素的边缘区域,在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
9.如权利要求1所述的方法,其特征在于,
所述方法还包括:
执行所述脚本;
在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。
10.一种定位用户界面元素的装置,其特征在于,包括:
用于录制脚本的录制模块;
所述录制模块包括:
第一选择模块,用于针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
生成模块,用于基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径:
第二选择模块,用于从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数;
所述第二选择模块还用于:当选择出的 M个参数包括目标元素的兄弟元素时,基于所述目标元素的兄弟元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的所述兄弟元素中选择具有唯一定位路径的兄弟元素,根据所述具有唯一定位路径的兄弟元素的所述唯一定位路径生成所述目标元素的定位路径,所述兄弟元素的所述唯一定位路径不包含索引标号;
当选择出的 M个参数包括目标元素的兄弟元素的下级元素或目标元素的下级元素时,基于所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素中选择具有唯一定位路径的元素,确定所述具有唯一定位路径的元素与所述目标元素的深度差值,根据所述具有唯一定位路径的元素的所述唯一定位路径和所述深度差值生成所述目标元素的定位路径,所述元素的所述唯一定位路径不包含索引标号。
11.如权利要求10所述的装置,其特征在于,
所述装置还包括:
排序模块,用于将所述M个唯一定位路径按优先级规则进行排序构成一序列;
所述第二选择模块包括:
第三选择模块,用于从所述序列中选择出优先级最高的一个唯一定位路径。
12.如权利要求11所述的装置,其特征在于,
所述装置还包括:
第一调整模块,用于对所述序列进行第一次调整;
所述第一调整模块包括:
第一判断模块,用于判断根据所述目标元素的定位标识属性生成的唯一定位路径是否具有索引标号;
位次调整模块,用于在根据所述目标元素的定位标识属性生成的唯一定位路径不具有索引标号时,提升所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级;在根据所述目标元素的定位标识属性生成的唯一定位路径具有索引标号时,降低所述根据所述目标元素的定位标识属性生成的唯一定位路径在所述序列中的优先级。
13.如权利要求12所述的装置,其特征在于,
所述装置还包括:
第二调整模块,用于对第一次调整后的序列进行第二次调整;还用于使用以下方式中的至少一种进行第二次调整:
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的文本属性生成的唯一定位路径,在所述文本属性的字符长度小于预设字符数量时,设置此唯一定位路径的优先级最高;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径中根据所述目标元素的内容表示属性生成的唯一定位路径,在所述内容表示属性的字符长度小于预设字符数量时,提高此唯一定位路径的优先级;
针对所述第一次调整后的排序中没有索引标号的唯一定位路径,将根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的属性值的长度与其余的没有索引标号的唯一定位路径中的属性值的长度比较,长度越小,相应唯一定位路径的优先级越小;
针对所述第一次调整后的排序中有索引标号的唯一定位路径,根据所述目标元素的文本属性或内容表示属性生成的唯一定位路径的优先级高于其余的唯一定位路径的优先级。
14.如权利要求11所述的装置,其特征在于,
所述优先级规则中唯一定位路径的优先级从高到低的顺序依次为:
定位标识属性是文本属性时,根据所述目标元素的文本属性生成的所述目标元素的唯一定位路径;
定位标识属性是资源标识属性时,根据所述目标元素的资源标识属性生成的所述目标元素的唯一定位路径;
根据目标元素的下级元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素生成的所述目标元素的唯一定位路径;
根据目标元素的兄弟元素的下级元素生成的所述目标元素的唯一定位路径;
根据目标元素的父元素的定位标识属性生成的所述目标元素的唯一定位路径;
定位标识属性是内容表示属性时,根据所述目标元素的内容表示属性生成的所述目标元素的唯一定位路径。
15.如权利要求10、11、12、13或14中任一权利要求所述的装置,其特征在于,
所述定位标识属性包括以下中的至少一种:
文本属性、资源标识属性、内容表示属性、类属性。
16.如权利要求10所述的装置,其特征在于,
所述录制模块还包括:
记录模块,用于记录针对所述目标元素的点触位置;
第一确定模块,用于根据所述点触位置确定相比于所述目标元素的参考对象的相对位置信息;
所述装置还包括:
第一执行模块,用于执行所述脚本;
所述第一执行模块包括:
第二确定模块,用于在执行所述脚本的过程中,根据所述参考对象和所述相对位置信息确定当前目标元素的点触位置;
第二执行模块,用于在所述点触位置执行点触操作。
17.如权利要求16所述的装置,其特征在于,
所述第一执行模块还包括:
第二判断模块,用于判断所述点触位置是否位于所述目标元素的边缘区域;
更新模块,用于在所述点触位置位于所述目标元素的边缘区域时,将所述点触位置更新为非边缘区域内的位置,更新后的位置是所述非边缘区域内的距更新前的位置距离最近的一位置。
18.如权利要求10所述的装置,其特征在于,
所述装置还包括:
第三执行模块,执行所述脚本;
定位恢复模块,用于在执行所述脚本后,从生成的M个唯一定位路径中选择出的唯一定位路径定位失败时,确定此唯一定位路径中包含的当前定位标识属性,使用其它定位标识属性替换所述当前定位标识属性生成新的唯一定位路径,直至新的唯一定位路径定位成功。
19.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种定位用户界面元素的方法,所述方法包括:
录制脚本;
所述录制脚本包括:
针对用户界面中的目标元素,从所述目标元素的下述参数中选择出M个参数:N个定位标识属性、兄弟元素、兄弟元素的下级元素、下级元素、父元素的定位标识属性;
基于选择出的每个参数分别生成所述目标元素的一个唯一定位路径;
从生成的M个唯一定位路径中选择出一个唯一定位路径;
其中,所述定位标识属性是用于确定定位路径的标识属性;N是大于1的整数,M是大于1并且小于或等于N+6的整数;
当选择出的 M个参数包括目标元素的兄弟元素时,基于所述目标元素的兄弟元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的所述兄弟元素中选择具有唯一定位路径的兄弟元素,根据所述具有唯一定位路径的兄弟元素的所述唯一定位路径生成所述目标元素的定位路径,所述兄弟元素的所述唯一定位路径不包含索引标号;
当选择出的 M个参数包括目标元素的兄弟元素的下级元素或目标元素的下级元素时,基于所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素生成所述目标元素的唯一定位路径包括: 从所述目标元素的兄弟元素的下级元素或所述目标元素的下级元素中选择具有唯一定位路径的元素,确定所述具有唯一定位路径的元素与所述目标元素的深度差值,根据所述具有唯一定位路径的元素的所述唯一定位路径和所述深度差值生成所述目标元素的定位路径,所述元素的所述唯一定位路径不包含索引标号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010006221.5A CN111221612B (zh) | 2020-01-03 | 2020-01-03 | 一种定位用户界面元素的方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010006221.5A CN111221612B (zh) | 2020-01-03 | 2020-01-03 | 一种定位用户界面元素的方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221612A CN111221612A (zh) | 2020-06-02 |
CN111221612B true CN111221612B (zh) | 2023-08-29 |
Family
ID=70825931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010006221.5A Active CN111221612B (zh) | 2020-01-03 | 2020-01-03 | 一种定位用户界面元素的方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221612B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11385777B2 (en) | 2020-09-14 | 2022-07-12 | UiPath, Inc. | User interface (UI) mapper for robotic process automation |
CN112181412A (zh) * | 2020-09-27 | 2021-01-05 | 的卢技术有限公司 | 一种ui元素定位方法、系统、电子设备及存储介质 |
CN113779459B (zh) * | 2021-08-09 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 页面显示方法、装置及电子设备 |
CN113722017A (zh) * | 2021-09-16 | 2021-11-30 | 中国银行股份有限公司 | 一种数据处理方法及系统 |
CN114491368B (zh) * | 2022-01-20 | 2024-03-08 | 抖音视界有限公司 | 表格定位器生成方法、表格操作方法、装置、介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424087A (zh) * | 2013-08-21 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种web页面元素定位的方法,装置及系统 |
CN104657377A (zh) * | 2013-11-20 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 一种多路网页控件定位方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7607110B2 (en) * | 2003-10-23 | 2009-10-20 | Microsoft Corporation | Element persistent identification |
-
2020
- 2020-01-03 CN CN202010006221.5A patent/CN111221612B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424087A (zh) * | 2013-08-21 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种web页面元素定位的方法,装置及系统 |
CN104657377A (zh) * | 2013-11-20 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 一种多路网页控件定位方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111221612A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221612B (zh) | 一种定位用户界面元素的方法、装置及介质 | |
CN107229348B (zh) | 一种输入纠错方法、装置和用于输入纠错的装置 | |
CN109359056B (zh) | 一种应用程序测试方法及装置 | |
US10949490B2 (en) | Method and apparatus for displaying webpage content | |
CN111539443A (zh) | 一种图像识别模型训练方法及装置、存储介质 | |
CN114240882A (zh) | 缺陷检测方法及装置、电子设备和存储介质 | |
CN110704030A (zh) | 接口配置信息生成方法、装置、电子设备及存储介质 | |
CN115982024A (zh) | 测试脚本生成方法、设备、存储介质及程序产品 | |
CN111813932A (zh) | 文本数据的处理方法、分类方法、装置及可读存储介质 | |
CN116069612A (zh) | 一种异常定位方法、装置和电子设备 | |
CN113010157B (zh) | 一种代码生成方法及装置 | |
CN110795014B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN111061452A (zh) | 用户界面的语音控制方法和装置 | |
CN107977127B (zh) | 更新页面的方法、装置及终端 | |
CN108073291B (zh) | 一种输入方法和装置、一种用于输入的装置 | |
CN115408277B (zh) | 一种接口测试方法及装置 | |
CN106020694A (zh) | 电子设备、选区动态调整方法及装置 | |
CN112333233B (zh) | 事件信息的上报方法、装置、电子设备及存储介质 | |
CN111611470A (zh) | 一种数据处理方法、装置和电子设备 | |
CN112988822B (zh) | 数据查询方法、装置、设备、可读存储介质以及产品 | |
CN111026658B (zh) | 快应用的调试方法及装置、介质 | |
CN113903034A (zh) | 一种基于公式的数据处理方法及装置 | |
CN108182145B (zh) | 验证app界面布局的方法、装置及计算机可读存储介质 | |
CN108021399B (zh) | 便签处理方法、装置、设备及存储介质 | |
CN112115696A (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 |