System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种界面元素定位方法、系统、介质及电子设备。
技术介绍
1、在开展web应用的界面自动化测试时,绝大部分操作步骤都是关于对各类界面元素进行操作,界面元素定位是操作时的重要一步,界面元素定位指自动化测试脚本识别web界面上元素的技术;因此,如何准确定位元素,以及如何稳定定位元素,是界面自动化测试中测试用例脚本正常执行的关键。
2、相关技术中,主流的元素定位方式包括:xpath定位、css selector定位等;这两种也是web页面元素定位的基本方式,具体又可以分为“绝对定位”、“相对定位”,不管是xpath定位还是css selector定位,其原理都是根据元素的节点属性和属性值进行标识,并按照dom树节点间的层级关系进行定位。但是由于随着web页面结构越来越复杂,且可能存在频繁变动的可能性,界面的元素繁冗且人工难以读取,使得难以维护的“绝对定位”方式并不是最优解,例如在一些复杂页面的极端场景下,除了绝对定位,其他定位方式存在可能定位不到目标元素的问题,从而降低了用户界面的测试效率。
技术实现思路
1、本申请实施例提供了一种界面元素定位方法、系统、介质及电子设备。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
2、第一方面,本申请实施例提供了一种界面元素定位方法,
3、在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式;
4、当原始定位表达式不能唯一确定目标元素的位置时,执行针对目标元素预先构造的元素触发事件,得到目标元素对应的动态变化的属性标识;其中,元素触发事件用于动态模拟用户触发待测试界面的操作,以动态修改目标元素的元素属性标识;
5、基于动态变化的属性标识,重新组装目标元素对应的原始定位表达式,得到目标元素对应的目标定位表达式;
6、根据目标定位表达式,确定目标元素以及与目标元素相关元素的位置。
7、可选的,采用自动化测试方法执行针对目标元素预先构造的元素触发事件之前,还包括:
8、验证原始定位表达式,以判断原始定位表达式是否能唯一确定目标元素的位置;
9、当原始定位表达式能唯一确定目标元素的位置时,通过自动化测试脚本执行原始定位表达式,以确定目标元素以及与目标元素相关元素的位置。
10、可选的,根据目标定位表达式,确定目标元素以及与目标元素相关元素的位置,包括:
11、根据目标定位表达式,提炼出与目标元素相关的所有相关元素的定位表达式;
12、通过自动化测试脚本执行目标定位表达式和所有相关元素的定位表达式,以确定目标元素以及与目标元素相关元素的位置。
13、可选的,执行针对目标元素预先构造的元素触发事件,包括:
14、获取目标元素的元素标识;
15、基于目标元素的元素标识,从预先存储的元素标识与预先构造的元素触发事件之间的映射关系中,获取对应的预先构造的元素触发事件;
16、执行预先构造的元素触发事件。
17、可选的,获取待测试界面中目标元素对应的原始定位表达式,包括:
18、获取待测试界面对应的dom树;
19、根据dom树,确定目标元素的元素标识;
20、基于目标元素的元素标识,从预先存储的每个元素的元素标识与每个元素的原始定位表达式之间的映射关系中,获取目标元素对应的原始定位表达式。
21、可选的,在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式之前,包括:
22、获取web应用的每个界面中所涉及的全部元素;
23、获取针对每个元素设置的预先构造的元素触发事件;
24、存储每个元素的元素标识与每个元素对应的预先构造的元素触发事件之间的映射关系。
25、可选的,在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式之前,还包括:
26、获取web应用的每个界面中所涉及的全部元素;
27、获取针对每个元素设定的原始定位表达式;
28、存储每个元素的元素标识与每个元素的原始定位表达式之间的映射关系。
29、第二方面,本申请实施例提供了一种界面元素定位系统,系统包括:
30、原始定位表达式获取模块,用于在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式;
31、元素触发事件执行模块,用于当原始定位表达式不能唯一确定目标元素的位置时,执行针对目标元素预先构造的元素触发事件,得到目标元素对应的动态变化的属性标识;其中,元素触发事件用于动态模拟用户触发待测试界面的操作,以动态修改目标元素的元素属性标识;
32、表达式组装模块,用于基于动态变化的属性标识,重新组装目标元素对应的原始定位表达式,得到目标元素对应的目标定位表达式;
33、元素位置确定模块,用于根据目标定位表达式,确定目标元素以及与目标元素相关元素的位置。
34、第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
35、第四方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
36、本申请实施例提供的技术方案可以包括以下有益效果:
37、在本申请实施例中,本申请针对界面中元素预先构造了元素触发事件,该元素触发事件用于动态模拟用户触发待测试界面的操作,以动态修改目标元素的元素属性标识,使界面中不存在标识的数据信息存在了标识,可基于新的标识准确的定位到元素的位置,实现了准确定位出任何复杂界面中的元素位置,从而提高了用户界面的测试效率。
38、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
本文档来自技高网...【技术保护点】
1.一种界面元素定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述执行针对所述目标元素预先构造的元素触发事件之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标定位表达式,确定所述目标元素以及与所述目标元素相关元素的位置,包括:
4.根据权利要求1所述的方法,其特征在于,所述执行针对所述目标元素预先构造的元素触发事件,包括:
5.根据权利要求1所述的方法,其特征在于,所述获取待测试界面中目标元素对应的原始定位表达式,包括:
6.根据权利要求1所述的方法,其特征在于,所述在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式之前,包括:
7.根据权利要求1所述的方法,其特征在于,所述在web应用的界面进行自动化测试过程中,获取待测试界面中目标元素对应的原始定位表达式之前,还包括:
8.一种界面元素定位系统,其特征在于,所述系统包括:
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-7任意一项所述的方法。
...【技术特征摘要】
1.一种界面元素定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述执行针对所述目标元素预先构造的元素触发事件之前,还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标定位表达式,确定所述目标元素以及与所述目标元素相关元素的位置,包括:
4.根据权利要求1所述的方法,其特征在于,所述执行针对所述目标元素预先构造的元素触发事件,包括:
5.根据权利要求1所述的方法,其特征在于,所述获取待测试界面中目标元素对应的原始定位表达式,包括:
6.根据权利要求1所述的方法,其特征在于,所述在web应用的界面进行自动化测...
【专利技术属性】
技术研发人员:王涛,刘建飞,肖杰,
申请(专利权)人:潍柴动力股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。