一种基于Web元素属性特征的定位方法与流程

文档序号:26050831发布日期:2021-07-27 15:25阅读:129来源:国知局
一种基于Web元素属性特征的定位方法与流程

本发明涉及元素定位技术领域,具体为一种基于web元素属性特征的定位方法。



背景技术:

rpa(roboticprocessautomation),即机器人流程自动化。它是替代人工的一种工作方式,用于解放人力于重复冗杂和有规则的工作流中。实现机器人流程自动化指的是非侵入式的自动化,即采用不同的识别技术来定位目标元素,而非注入代码的形式。

在rpa的产品功能中,准确定位元素是一个基础核心功能,在web自动化领域,传统web元素定位方法多使用基于页面dom结构的目标元素到根节点之间的遍历路径作为特征值(遍历路径如:html->body->div->div[2]->span),由于现代web页面展示内容越来越复杂,交互展示越来越丰富,现行web主流框架(react、vue、angular)均采用一种virtual-dom技术来提升性能,该技术是通过动态控制dom元素增删改变控制来实现高性能的web交互展示,动态dom元素增删会导致根节点到目标元素之间的遍历路径发生变化,进而导致页面自动化时无法正确定位元素,无法完成自动化操作;另外随着web技术的不断成熟,web开发逐步规范化、组件化,为了保证跨浏览器的体验一致,在不同浏览器(chrome/firefox/edge)中有相同的外观以及交互,同一组件在不同浏览器类型中甚至相同浏览器类型的不同发行版本中渲染的dom元素、样式不尽相同,这也会导致由于用户更换浏览器或者浏览器版本升级而引发的页面自动化无法正确的定位元素,无法完成自动化操作。

因此,我们提出一种基于web元素属性特征的定位方法,以便于解决上述中提出的问题。



技术实现要素:

本发明的目的在于提供一种基于web元素属性特征的定位方法,以解决上述背景技术中提出的大多数定位方法会导致由于用户更换浏览器或者浏览器版本升级而引发的页面自动化无法正确的定位元素,无法完成自动化操作的问题。

为实现上述目的,本发明提供如下技术方案:一种基于web元素属性特征的定位方法,web元素定位方法根据不同元素最优化选择特征属性值,利用特征属性值构建目标元素xpath查询字符串,其中,web元素定位方法包括以下几个步骤:

步骤一:根据目标元素不同类型,确定需要验证的属性名称;

步骤二:获取目标元素的特征值;

步骤三:根据元素特征值构建xpath。

优选的,所述步骤一中,在确定需要验证的属性名称时,先把元素属性分为通用属性以及专有属性,其中:

通用属性是指html元素普遍存在并经常被使用的属性,具体如下:id:元素id属性字段,该属性规定了元素的唯一标识符;name:元素name字段,该属性规定了元素的名称;title:元素title字段,常用来解释元素的使用用途,当鼠标悬停在元素上面时,提示框显示的文本;text:元素内部的文本;

专有属性是指根据不同的元素类型,读取元素特有的属性,具体如下:

inputhtmlelement元素专有属性:type:用来表明该input元素用于输入的内容或者是否是表单提交等操作;

imghtmlelement元素专有属性:src:该属性规定了嵌入图片的文件路径;alt:该属性规定了对图像的文本描述,在图片无法呈现时的替代文本或者用于屏幕阅读器将这些描述读给使用者听;

iframehtmlelement元素专有属性:src:内嵌的页面地址;

ahtmlelement元素专有属性:href:包含超链接指向的url或url片段;target:指定在何处显示链接的资源;

最终根据目标元素通用属性以及专有属性可以获得该元素属性数组arrlist。

优选的,所述步骤二中获取目标元素的特征值的具体流程包括:

(1)构建一个目标元素特征属性amap,以及一个整数count,用来记录全局中通过当前amap可以匹配到的元素个数,初始值为无限大;

(2)逐一从attrlist中获取当前的属性名称k,获取到当前元素属性名称k所对应的值v,加入到amap中;全局查找可以匹配amap中所有属性的元素,记录下当前满足条件的元素数量n,如果此时n的值并未小于count,表明当前属性k的加入并没有使目标元素定位更加精确,此时需要从amap中删除属性k以及对应的v;否则更新count的值为当前满足条件的元素个数n循环执行本步骤,直至遍历完attrlist中所有属性,或者通过amap中的属性只可以唯一匹配到目标元素;

(3)检查count字段,如果该字段为1,则表明通过amap可以唯一定位到目标元素,此时的amap中的属性值即为该目标元素的特征值;如果该字段大于1,则表明页面中满足amap中的属性值还有其他元素,此时需要进一步增加特征值,来唯一确认目标元素,这里采用基于dom树结构的深度遍历算法,获取所有满足amap属性值的元素列表elementarray,记录下目标元素位于elementarray中的位置索引index,此时index连同amap中所有属性值可以作为目标元素的特征值。

优选的,所述步骤三中,xpath指的是xml路径语言,xml路径语言可以用于检测文档中某个节点是否与某个模式(pattern)匹配,xpath提供丰富的函数,可以灵活的支持多重属性匹配,而且主流浏览器中均支持xpath。

优选的,所述步骤二中获取的元素属性特征值,构建目标元素的xpath字符串,该xpath是基于元素的属性获取的定位特征值,在html页面结构发生变化后,也可以很稳定的定位到目标元素。

优选的,所述步骤一和步骤二选择特征明显的元素作为锚点元素,产生属性特征集合,在步骤三根据锚点元素到目标元素的相对位置来产生xpath唯一定位目标元素。

与现有技术相比,本发明的有益效果是:该基于web元素属性特征的定位方法,采用目标元素的特征属性作为定位信息,获取的元素的特征属性,与dom结构以及页面展示样式无关,元素的特征属性多用于表明元素的业务用途(比如常见提交按钮的特征属性值为type=“submit”text=“提交”),在dom结构以及页面样式发生变化后,元素的特征属性也会稳定不变,本发明针对不同类型的元素定制读取不同的特征属性,利用动态特征属性提取算法可以获取目标元素在该页面的唯一特征属性值,实现更加鲁棒的元素定位。

附图说明

图1为本发明获取目标元素特征属性名称流程示意图;

图2为本发明动态特征属性提取算法提取目标元素特征属性流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-2,本发明提供一种技术方案:一种基于web元素属性特征的定位方法,web元素定位方法根据不同元素最优化选择特征属性值,利用特征属性值构建目标元素xpath查询字符串,其中,web元素定位方法包括以下几个步骤:

步骤一:根据目标元素不同类型,确定需要验证的属性名称;

步骤二:获取目标元素的特征值;

步骤三:根据元素特征值构建xpath。

本发明更进一步的,所述步骤一中,在确定需要验证的属性名称时,先把元素属性分为通用属性以及专有属性,其中:

通用属性是指html元素普遍存在并经常被使用的属性,具体如下:id:元素id属性字段,该属性规定了元素的唯一标识符;name:元素name字段,该属性规定了元素的名称;title:元素title字段,常用来解释元素的使用用途,当鼠标悬停在元素上面时,提示框显示的文本;text:元素内部的文本;

专有属性是指根据不同的元素类型,读取元素特有的属性,具体如下:

inputhtmlelement元素专有属性:type:用来表明该input元素用于输入的内容或者是否是表单提交等操作;

imghtmlelement元素专有属性:src:该属性规定了嵌入图片的文件路径;alt:该属性规定了对图像的文本描述,在图片无法呈现时的替代文本或者用于屏幕阅读器将这些描述读给使用者听;

iframehtmlelement元素专有属性:src:内嵌的页面地址;

ahtmlelement元素专有属性:href:包含超链接指向的url或url片段;target:指定在何处显示链接的资源;

最终根据目标元素通用属性以及专有属性可以获得该元素属性数组arrlist。

本发明更进一步的,所述步骤二中获取目标元素的特征值的具体流程包括:

(1)构建一个目标元素特征属性amap,以及一个整数count,用来记录全局中通过当前amap可以匹配到的元素个数,初始值为无限大;

(2)逐一从attrlist中获取当前的属性名称k,获取到当前元素属性名称k所对应的值v,加入到amap中;全局查找可以匹配amap中所有属性的元素,记录下当前满足条件的元素数量n,如果此时n的值并未小于count,表明当前属性k的加入并没有使目标元素定位更加精确,此时需要从amap中删除属性k以及对应的v;否则更新count的值为当前满足条件的元素个数n;循环执行本步骤,直至遍历完attrlist中所有属性,或者通过amap中的属性只可以唯一匹配到目标元素;

(3)检查count字段,如果该字段为1,则表明通过amap可以唯一定位到目标元素,此时的amap中的属性值即为该目标元素的特征值;如果该字段大于1,则表明页面中满足amap中的属性值还有其他元素,此时需要进一步增加特征值,来唯一确认目标元素,这里采用基于dom树结构的深度遍历算法,获取所有满足amap属性值的元素列表elementarray,记录下目标元素位于elementarray中的位置索引index,此时index连同amap中所有属性值可以作为目标元素的特征值。

本发明更进一步的,所述步骤三中,xpath指的是xml路径语言,xml路径语言可以用于检测文档中某个节点是否与某个模式(pattern)匹配,xpath提供丰富的函数,可以灵活的支持多重属性匹配,而且主流浏览器中均支持xpath。

本发明更进一步的,所述步骤二中获取的元素属性特征值,构建目标元素的xpath字符串,该xpath是基于元素的属性获取的定位特征值,在html页面结构发生变化后,也可以很稳定的定位到目标元素。

本发明更进一步的,所述步骤一和步骤二选择特征明显的元素作为锚点元素,产生属性特征集合,在步骤三根据锚点元素到目标元素的相对位置来产生xpath唯一定位目标元素。

本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合,本说明书系统实施例,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1