一种支持RPA软件跨浏览器的元素识别定位方法与流程

文档序号:30496742发布日期:2022-06-22 05:18阅读:547来源:国知局
一种支持RPA软件跨浏览器的元素识别定位方法与流程
一种支持rpa软件跨浏览器的元素识别定位方法
技术领域
1.本发明涉及机器人流程自动化领域,尤其涉及一种支持rpa软件跨浏览器的元素识别定位方法。


背景技术:

2.目前,rpa软件机器人基于固定规则的动作来模拟和执行既定的业务流程,帮助类型操作各种it应用程序,在很多领域已有了显著的应用效果,降低企业的人力成本,提升业务整体的执行效率。因为rpa软件涉及与诸多软件系统的交互,运行依赖于系统环境,因此要尽可能地确保运行环境与生产环境的高度一致性,使得流程可以稳定运行。实际上,web应用程序在建设规划的时候一般是支持包括谷歌、火狐、ieedge等多种浏览器环境的,网页在不同的浏览器中加载并浏览。由于不同的浏览器解析dom文件的方式不同,rpa软件需要为每种浏览器配置不同的网页元素定位组件、鼠标动作组件和文本操作组件,当运行环境浏览器不同时,需要维护多套rpa流程,运维难度较大。


技术实现要素:

3.鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种支持rpa软件跨浏览器的元素识别定位方法。
4.根据本发明的一个方面,提供了一种支持rpa软件跨浏览器的元素识别定位方法,所述识别定位方法包括:
5.获取网页的路径信息,并根据所述路径信息构建元素结构树;
6.根据所述元素结构树构建元素节点路径的快速查询缓存;
7.根据所述快速查询缓存定位网页元素。
8.可选的,所述根据所述路径信息构建元素结构树具体包括:
9.采用递归算法根据dom树结构建立内存元素树结构;
10.解析每个元素的有效信息,为每个节点补充元素节点的完整路径,记录节点的父完整路径,补充dom元素对象。
11.可选的,所述根据所述元素结构树构建元素节点路径的快速查询缓存具体包括:
12.在构建内存元素树结构时,根据元素节点路径,同步构建基于元素节点路径的快捷查询缓存;
13.记录元素节点的路径和元素节点对象的关系,在查询时通过路径信息直接定位到元素节点。
14.可选的,所述记录元素节点的路径和元素节点对象的关系,在查询时通过路径信息直接定位到元素节点具体包括:
15.当网页元素定位时,直接基于元素路径,根据查找缓存找到内存元素树中的元素节点,定位到网页中的元素,获取元素节点上的dom对象;
16.当执行元素动作时,直接基于元素路径,根据查找缓存找到内存元素树中的元素
节点,定位到网页中的元素,获取所述元素节点上的dom对象。
17.本发明提供的一种支持rpa软件跨浏览器的元素识别定位方法,所述识别定位方法包括:获取网页的路径信息,并根据所述路径信息构建元素结构树;根据所述元素结构树构建元素节点路径的快速查询缓存;根据所述快速查询缓存定位网页元素。在网页打开完成后自动构建元素结构树,为每个节点添加完整的路径,实现了网页元素依据父路径的快速定位。
18.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
19.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
20.图1为本发明实施例提供的一种rpa通用的网页元素定位方法的组件示意图;
21.图2为本发明实施例提供的网页元素定位和执行网页元素动作的流程示意图;
22.图3为本发明实施例提供的浏览器与rpa组件的交互过程示意图。
具体实施方式
23.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
24.本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
25.下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
26.如图1所示,如图1所示,本发明主要由两部分组成:1)通用的rpa跨浏览器网页操作组件。通用的rpa跨浏览器网页组件可实现同一个rpa网页操作组件,基于不同的浏览器,实现网页打开、元素定位识别获取、鼠标单双击操作、元素文本获取及设置等浏览器元素定位识别等。将浏览器网页操作组件抽象为4个组件:打开网页组件、获取元素组件、鼠标动作组件、文本操作组件。2)可扩充的浏览器执行插件。安装在浏览器端,与rpa组件基于进程间通信的机制进行交互,可基于不同的浏览器实现对通用rpa组件的解析、执行。
27.本方案的实现原理描述如下:
28.通用的rpa跨浏览器网页操作组件:
29.打开网页组件:负责启动浏览器或者在已经启动的浏览器中增加tab页,加载和浏览指定网页。
30.获取元素组件:一组元素定位组件,用于查找和定位网页中单个元素和多个元素,包括表格。支持通过定义定位元素的全路径结合xpath标准方法,或者通过全路径中基于元
素标识的定义,包括元素属性id、name、class、css、tag和元素属性等,结合dom遍历的方式执行网页元素的定位。基于xpath的元素查找语法,定义需要查找的元素。支持同时查找多个元素。
31.文本操作组件:用于对定位的元素执行文本相关的操作。支持通过元素属性id、name、class、css和tag等获取元素上的指定文本内容,或设置元素上的文本内容。
32.鼠标动作组件:用于对定位的元素执行鼠标相关的操作。支持在元素上执行鼠标单击操作,包括鼠标左键和鼠标右键,在鼠标单击操作时,支持与ctrl键、alt键和shift键结合。支持在元素上执行鼠标双击操作,包括鼠标左键和鼠标右键,在鼠标双击操作时,支持与ctrl键、alt键和shift键结合。
33.二、浏览器插件
34.如图2所示,本发明实现了基于add-on sdk技术的浏览器插件,可扩充浏览器执行rpa跨浏览器通用组件的能力,由rpa软件通过进程间通信的方式与浏览器插件进行通信,从而操纵浏览器浏览网页,并进行网页元素定位和执行网页元素动作。
35.浏览器插件包括五部分:
36.命名管道server:在浏览器启动时建立命名管道,用于与rpa软件通讯,传递消息。
37.消息栈:负责存储rpa软件发送的消息。
38.消息处理模块:处理从命名管道收到的消息,调度相应的模块执行元素定位和元素动作,返回执行结果。
39.元素定位模块:通过xpath标准方法或者dom遍历的方式,实现网页元素的定位。
40.元素动作模块:基于dom标准执行元素可以支持操作,鼠标单击、鼠标双击、获取文本和设置文本。
41.针对消息处理模块,本发明采用消息分类解析处理机制,根据要执行的rpa组件的不同,将rpa软件通过命名管道发送到浏览器插件中的消息进行解析,按照类型进行分类处理。消息由消息头和消息体组成。消息头中包含了消息的类型信息、消息的发送时间和消息长度等内容。消息体中包含了需要处理的消息内容,如浏览网页消息中包含了网页的url,元素定位消息中包含了元素完整定位父路径,元素动作消息中包含了元素完整定位父路径和需要执行的动作信息。消息处理模块在将消息从消息栈中出栈后,解析消息,得到消息分类以及消息的相关参数。按照消息分类,调用相应的处理模块,在网页上执行需要的操作。操作完成后,返回相关的数据,依次执行消息栈中的下一条消息,直到消息栈中无消息。
42.本发明采用了构建元素结构树以及元素节点路径的快速查询缓存,在网页打开完成后自动构建元素结构树,为每个节点添加完整的路径,实现了网页元素依据父路径的快速定位:
43.构建元素结构树:依据dom树结构,使用递归算法,建立内存元素树结构,解析每个元素的有效信息,为每个节点补充元素节点的完整路径,记录节点的父完整路径,补充dom元素对象,从而保证在找到元素节点对象后,可以方便的操作dom元素对象。对于表格对象,表格中的记录会作为内存元素树上单独的节点,表格中的各个子元素会被记录为该节点的子节点;针对网页中嵌入了iframe网页的情况,在元素定位过程中,如需要定位该子网页中的元素,算法将动态加载该子网页,并在内存元素树中动态创建该网页的子树结构。当元素文本经过文本设置操作发生改变后,会同步到内存元素树上,如果变化的文本影响了路径
信息,会同步修改节点上的路径信息。
44.构建元素节点路径的快速查询缓存:在构建内存元素树结构时,根据元素节点路径,会同步构建基于元素节点路径的快速查询缓存,记录元素节点路径和元素节点对象的关系,在查询时可以通过路径信息直接定位到元素节点。如果元素中存在多个有效数据,如id、name、class、css、text和tag等,将为该元素节点构建多个有效的查询路径。查询路径与内存元素树上的元素对象相对应,确保元素节点的所有有效路径都可以作为元素节点的查找依据。
45.当网页元素定位时,直接基于元素路径,通过快速查找缓存找到内存元素树中的元素节点,定位到网页中的元素,获取元素节点上的dom对象。根据元素定位的要求,返回指定的数据,包括节点自身以及子节点的数据集合等。返回数据以json字符串的方式,通过命名管道传递给rpa中的元素定位组件。在定位过程中,若没有按照元素路径定位到元素,会向上逐级定位该元素路径的父节点路径。对于定位成功的父节点,查看其是否为iframe网页。如果是iframe网页节点,则动态加载该网页,构成新的内存元素树后,尝试基于新的元素路径对元素进行定位。如没有按照元素路径定位到元素,算法将重复上述过程,直到所有的iframe网页都加载完成,且无法成功定位该元素,则返回元素定位失败的消息。
46.当执行元素动作时,直接基于元素路径,通过快速查找缓存找到内存元素树中的元素节点,定位到网页中的元素,获取元素节点上的dom对象,执行需要执行的元素操作。
47.浏览器插件为浏览器的扩展组件,需要注册到浏览器中。浏览器插件负责在浏览器中执行网页浏览,元素定位和元素动作等操作。这些操作通过js脚本实现,通过扩充js脚本实现更加复杂的网页操作。由于每种浏览器操作网页的方式不同,为不同的浏览器开发不同的浏览器插件,目前已经实现基于firefox浏览器、chrome浏览器和edge浏览器的插件。
48.三、浏览器与rpa组件的交互
49.整个交互过程如图3所示。rpa作为控制方,启动浏览器,按照设定流程执行网页操作,流程执行完毕后,关闭浏览器。在浏览器启动时,浏览器插件自动建立命名管道服务器。命名管道服务器会以阻塞等待连接的方式等待命名管道客户端与其进行连接。rpa软件通过rpa组件中内置的命名管道客户端,与浏览器中的命名管道服务器进行连接。连接成功后,通过命名管道以消息通信的方式向浏览器发送操作请求。浏览器插件收到通过命名管道发送的消息,将其压入消息栈中。消息处理模块依次将消息栈中的消息出栈,根据消息请求,执行网页浏览,元素定位和元素动作等操作,并将执行结果通过命名管道返回给rpa。
50.有益效果:采用本发明的方法只需要配置一次rpa流程,能够实现运行时结合具体的浏览器类型,在所有主流的浏览器中都能够定位到网页元素,对网页元素执行鼠标动作和文本操作,实现rpa软件跨浏览器进行元素的定位识别。
51.以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1