System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种页面元素查找方法、装置、电子设备及介质。
技术介绍
1、目前,随着互联网的高速发展,web网络已经成为世界上最大的信息来源。web网络的发展给人类生活带来了巨大的方便,人们可以跨越时间和空间界限来共享大量信息。整个web网络是由无数的网页页面构成的。页面的海量性、多样性、动态性和半结构化等特性增加了对其内容进行自动处理的难度。如何有效获取这些web页面中的内容为我们所用仍然是大家面临的共同问题。例如,在做用户界面(user interface,ui)自动化的时候,常常遇到同一个用例,有时跑能成功,有时跑失败的情况。大多数情况是页面加载受网络、设备配置等因素的影响,导致页面加载完成所需的时间不一样。当页面加载完成后,去执行ui自动化中的找元素步骤,此时,能够很好找到元素;当页面还未加载完成,就执行ui自动化中的找元素步骤时,就会报找不到元素的错误。
2、为了解决这种问题,相关技术会在上一个ui自动化步骤操作完后,在封装找元素的方法里设置一个最大等待时间,当超过这个时间后,就不再等待。这些方案或多或少能解决部分问题,但并不能完全解决。由于无法知道页面什么时候加载完成,因此只能根据经验去等待一个时间,再去执行一下步找元素操作。等待时间设置小了,用例重复执行的成功率会降低,等待时间设置大了,总的执行时间变长,效率降低。因此,如何精准确定查找元素的时机变得尤为重要。
技术实现思路
1、本申请实施例的主要目的在于提出一种页面元素查找方法、装置、电子设备
2、为实现上述目的,本申请实施例的第一方面提出了一种页面元素查找方法,所述方法包括:
3、响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
4、对所述目标页面进行代码解析,生成渲染树;
5、遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
6、当确定遍历完所述渲染树的全部节点,生成加载完成信号;
7、基于所述加载完成信号接收输入的元素查找请求;
8、在所述重绘页面上确定与所述元素查找请求对应的目标元素。
9、在一些实施例中,所述对所述目标页面进行代码解析,生成渲染树,包括:
10、基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,其中,所述词法记号用于表征所述目标页面的源代码中的符号切分,所述文本记号用于表征所述目标页面中的文本信息;
11、根据所述词法记号以及所述文本记号构建文档对象模型树;
12、根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树;
13、将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树。
14、在一些实施例中,所述基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,包括:
15、基于所述文件读取函数对所述目标页面进行标签识别,得到所述目标页面中的多个代码标签;
16、对所述代码标签进行属性解析,确定所述目标页面的词法记号以及文本记号;
17、对所述目标页面进行样式解析,得到所述目标页面的内联样式信息和外部样式信息;
18、根据所述内联样式信息以及所述外部样式信息生成层叠样式文件。
19、在一些实施例中,所述根据所述词法记号以及所述文本记号构建文档对象模型树,包括:
20、创建文档对象,并将所述文档对象作为根节点;
21、创建与所述词法记号对应的多个元素节点;
22、根据所述文本记号创建文本节点;
23、获取所述元素节点的多个属性节点,并将多个所述属性节点作为所述元素节点的子节点;
24、根据所述根节点、多个所述元素节点、所述文本节点以及多个所述子节点构建文档对象模型树。
25、在一些实施例中,所述根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树,包括:
26、对所述层叠样式文件进行样式规则解析,得到所述层叠样式文件的样式规则,并将所述样式规则转换为规则对象;
27、根据所述规则对象创建规则树结构;
28、将所述文档对象模型树中的所有所述元素节点与所述规则树结构进行元素匹配;
29、当所述元素节点与所述规则树结构匹配,将与所述元素节点对应的样式规则添加至所述规则树结构,得到层叠样式规则树。
30、在一些实施例中,所述将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树,包括:
31、遍历所述文档对象模型树,并根据所述层叠样式规则树确定所述文档对象模型树中所有节点的模型树样式规则;
32、将所述文档对象模型树中的节点与所述模型树样式规则进行关联,生成渲染树。
33、在一些实施例中,所述对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面,包括:
34、获取所述渲染树的渲染根节点;
35、对于所述渲染树的每一个可见节点,对所述可见节点进行尺寸测量,得到所述可见节点的尺寸信息;
36、基于预设的盒子模型以及尺寸信息确定所述可见节点的内容框;
37、根据所述内容框确定所述可见节点的位置信息;
38、根据所述位置信息对所述可见节点进行重排,得到重排参数;
39、根据所述重排参数对所述目标页面进行重绘,得到所述目标页面的重绘页面。
40、为实现上述目的,本申请实施例的第二方面提出了一种页面元素查找装置,所述装置包括:
41、响应请求模块,用于响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
42、代码解析模块,用于对所述目标页面进行代码解析,生成渲染树;
43、节点计算模块,用于遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
44、信号生成模块,用于当确定遍历完所述渲染树的全部节点,生成加载完成信号;
45、请求接收模块,用于基于所述加载完成信号接收输入的元素查找请求;
46、元素查找模块,用于在所述重绘页面上确定与所述元素查找请求对应的目标元素。
47、为实现上述目的,本申请实施例的第三方面提出了一种电子设备,一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的页面元素查找方法。
48、为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的页面元素查找方法。
49本文档来自技高网...
【技术保护点】
1.一种页面元素查找方法,其特征在于,所述方法包括:
2.根据权利要求1所述的页面元素查找方法,其特征在于,所述对所述目标页面进行代码解析,生成渲染树,包括:
3.根据权利要求2所述的页面元素查找方法,其特征在于,所述基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,包括:
4.根据权利要求2所述的页面元素查找方法,其特征在于,所述根据所述词法记号以及所述文本记号构建文档对象模型树,包括:
5.根据权利要求4所述的页面元素查找方法,其特征在于,所述根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树,包括:
6.根据权利要求2所述的页面元素查找方法,其特征在于,所述将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树,包括:
7.根据权利要求1所述的页面元素查找方法,其特征在于,所述对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面,包括:
8.一种页面元素查找装置,其特征在于,所述装置包括:
9.一种电子
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的页面元素查找方法。
...【技术特征摘要】
1.一种页面元素查找方法,其特征在于,所述方法包括:
2.根据权利要求1所述的页面元素查找方法,其特征在于,所述对所述目标页面进行代码解析,生成渲染树,包括:
3.根据权利要求2所述的页面元素查找方法,其特征在于,所述基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,包括:
4.根据权利要求2所述的页面元素查找方法,其特征在于,所述根据所述词法记号以及所述文本记号构建文档对象模型树,包括:
5.根据权利要求4所述的页面元素查找方法,其特征在于,所述根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树,包括:
6.根据权利要求2所述的页...
【专利技术属性】
技术研发人员:荣蕾,
申请(专利权)人:中国平安人寿保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。