一种RPA系统网页相似元素获取方法和系统与流程

文档序号:32038886发布日期:2022-11-03 04:28阅读:50来源:国知局
一种RPA系统网页相似元素获取方法和系统与流程
一种rpa系统网页相似元素获取方法和系统
技术领域
1.本发明涉及机器人流程自动化(robotic process automation,简称rpa)技术领域,尤其是其中关于网页相似元素获取的方法。


背景技术:

2.rpa可以将人们工作中一些基于规则的、大量重复的流程任务进行自动处理。人们可以通过rpa系统配置任务流程,rpa机器人将会自动按配置的流程进行处理。而在这些流程任务中,存在相当一部分比例的任务是对网页进行操作,比如点击网页中的超链接或者获取网页中某一块的文本和图片等。
3.因此,网页元素的获取和精准定位是rpa一项重要的技术。特别是人们在配置流程的时候,需要对网页中的一些相似元素进行处理。但是在相似元素所在的层级可能不同,或标签名也不同。因此不能简单地利用层级相等或者标签名相等等方法去定位其他相似元素。


技术实现要素:

4.针对上述问题,本发明的目的在于提供一种rpa系统网页相似元素获取的方法。
5.为实现上述目的,本发明提供如下技术方案,具体包括如下步骤:
6.第一个方面,本发明提出了一种rpa系统网页相似元素获取方法,包括如下步骤:
7.s1:在自动化流程配置阶段,选择两个相似的网页元素,分别存入第一网页元素选择器和第二网页元素选择器;
8.s2:根据步骤s1中得到的第一网页元素选择器和第二网页元素选择器,抽取两个网页元素选择器内所包含的元素的公共模式,并以json对象的形式输出公共模式列表;
9.s3:利用rpa系统获取网页界面的dom结构树,根据步骤s2中得到的网页元素公共模式列表,采用广度优先搜索算法自下而上遍历dom树,将dom树中的各节点元素与网页元素公共模式列表进行模式匹配,若匹配相同,则将节点元素保存到相似元素列表中。
10.第二个方面,本发明提出了一种rpa系统网页相似元素获取系统,包括:
11.第一网页元素选择模块,其用于存储第一网页元素;
12.第二网页元素选择模块,其用于存储与第一网页元素相似的第二网页元素;
13.公共模式抽取模块,其用于抽取第一网页元素选择模块和第二网页元素选择模块中所存储的元素的公共模式,并以json对象的形式输出公共模式列表;
14.模式匹配模块,其用于获取网页界面的dom结构树,根据公共模式抽取模块得到的网页元素公共模式列表,采用广度优先搜索算法自下而上遍历dom树,将dom树中的各节点元素与网页元素公共模式列表进行模式匹配,若匹配相同,则将节点元素保存到相似元素列表中。
15.在rpa系统的应用中,往往需要针对网页元素进行一系列操作,而且对于网页相似元素进行的操作往往是一致的。本发明可实现网页相似元素的获取,进而后续可对其进行
批量操作,而非人为去选取不同相似元素和配置相应的操作流程。
附图说明
16.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
17.图1是本发明实施例示出的一种rpa系统网页相似元素获取方法流程图;
18.图2是本发明实施例示出的dom树中的目标元素属性示意图;
19.图3是本发明实施例示出的一种rpa系统网页相似元素获取系统示意图;
20.图4是本发明实施例示出的一种rpa系统网页相似元素获取方法的电子设备终端结构示意图。
具体实施方式
21.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.本发明提出的一种rpa系统网页相似元素获取方法,包括如下步骤:
23.s1:在自动化流程配置阶段:自主选择两个相似的网页元素,分别存入第一网页元素选择器htmlselector1和第二网页元素选择器htmlselector2,同时rpa系统会自动获取网页的dom树,图2是本实施例示出的dom树中的目标元素属性示意图。
24.在本实施例中,由于rpa系统的流程配置阶段需人为根据任务需求选取两个网页元素作为相似元素。例如,本实施例中选取的网页相似元素为网页中两篇文章的标题。
25.s2:根据步骤s1中得到的第一网页元素选择器和第二网页元素选择器,抽取两个网页元素选择器内所包含的元素的公共模式,并以json对象的形式输出公共模式列表。
26.在本实施例中,以下功能将由自研的rpa系统自行完成。
27.s2-1:判断第一网页元素选择器和第二网页元素选择器中元素的数量,若其中任意一个为空,则返回错误信息并报错,若两个选择器中元素的数量不相等,则说明两个选择器中所含网页元素不是相似元素,返回错误信息并报错;若两个选择器中元素的数量相等,则进入步骤s2-2;
28.s2-2:将元素选择器中的元素视为节点,根据元素索引正序同步遍历两个选择器中的选择器节点,抽取两个选择器节点的公共模式,添加到公共模式列表中。具体为:
29.s2-2-1:遍历第一网页元素选择器中的节点node1_i的属性property_k,从第二网页元素选择器的节点中选择存在node_i.property_k.name的节点node2_j;其中,node1_i表示第一网页元素选择器中的第i个节点,property_k表示第k个属性,node1_i.property_k.name表示第一网页元素选择器中的第i个节点第k个属性的名称,node2_j表示第二网页元素选择器中的第j个节点;
30.本步骤中,将第一网页元素选择器中的节点集合表示为[node1_1,node1_2,

,node1_n],n为网页元素选择器中的节点数量;每一个节点node1_i(i=1,2,

,n)包含若干属性,表示为[property_1,property_2,

,property_k],k为属性数量;每一个属性
property_k(k=1,2,

,k)的结构表示为{name_1:value_1,name_2:value_2,

,name_m:value_m},m表示属性的名称数量,name_m表示第m个属性的名称,value_m第m个属性值。
[0031]
同理,将第二网页元素选择器中的节点集合表示为[node2_1,node2_2,

,node2_n],n为网页元素选择器中的节点数量;每一个节点node2_i的属性及其结构的表示方式同上。
[0032]
通过选取第一网页元素选择器中某一节点node1_i中的一个属性property_k,检查第二网页元素选择器中是否有存在相同属性的节点node2_j,即判断node2中是否存在node_i.property_k.name。若存在则进入s2-2-2,否则选取第一网页元素选择器中节点node1_i中的下一个属性property_k+1,重复进行上述操作。
[0033]
s2-2-2:根据属性匹配模式,合并两个节点node1_i、node2_j的属性值,得到属性合并值。具体为:
[0034]
s2-2-2-1:若节点node1_i、node2_j的属性匹配规则相同,且属性值也相同,则直接返回属性值作为属性合并值;若两个节点的匹配规则相同,但属性值不相同,则返回null作为属性合并值;若两个节点的匹配规则不相同,则转为正则匹配,并将两个节点的属性值转化为正则值,进入步骤s2-2-2-2;
[0035]
s2-2-2-2:判断两个节点的正则值是否相等,若相等,则直接返回正则匹配模式和正则值作为属性合并值;若不相等,则分别对两个节点的原始属性值加正则符号,得到处理后的两个字符串,返回两个字符串相加后的结果作为属性合并值。
[0036]
s2-2-3:将属性匹配模式和属性合并值合成为一个jtoken对象,将属性名称property_k.name和jtoken作为一个json对象添加到公共模式列表中。
[0037]
s3:根据步骤s2中得到的网页元素公共模式列表,采用广度优先搜索算法自下而上遍历dom树,将dom树中的各节点元素与网页元素公共模式列表进行模式匹配,若匹配相同,则将节点元素保存到相似元素列表中。具体为:
[0038]
s3-1:判断dom树中的当前节点元素是否为《body》或者《html》元素,若是,则进入s3-3,否则进入s3-2;
[0039]
s3-2:将dom树中的当前节点元素的use属性值设为true,并与步骤s2得到的公共模式列表进行模式匹配,若匹配成功,则将dom树中的当前节点元素添加至相似元素列表;返回步骤s3-1;
[0040]
s3-3:返回相似元素列表。
[0041]
与前述的一种rpa系统网页相似元素获取方法的实施例相对应,本技术还提供了一种一种rpa系统网页相似元素获取系统的实施例,如图3所示,其包括:
[0042]
第一网页元素选择模块,其用于存储第一网页元素;
[0043]
第二网页元素选择模块,其用于存储与第一网页元素相似的第二网页元素;
[0044]
公共模式抽取模块,其用于抽取第一网页元素选择模块和第二网页元素选择模块中所存储的元素的公共模式,并以json对象的形式输出公共模式列表;
[0045]
模式匹配模块,其用于获取网页界面的dom结构树,根据公共模式抽取模块得到的网页元素公共模式列表,采用广度优先搜索算法自下而上遍历dom树,将dom树中的各节点元素与网页元素公共模式列表进行模式匹配,若匹配相同,则将节点元素保存到相似元素列表中。
[0046]
本实施例中,所述的公共模式抽取模块包括:
[0047]
第一判断模块,其用于判断第一网页元素选择模块和第二网页元素选择模块中元素的数量,若其中任意一个为空,则返回错误信息并报错,若两个选择模块中元素的数量不相等,则说明两个选择模块中所含网页元素不是相似元素,返回错误信息并报错;若两个选择模块中元素的数量相等,则进入第二判断模块;
[0048]
第二判断模块,其用于将元素选择模块中的元素视为节点,根据元素索引正序同步遍历两个选择模块中的节点,抽取两个选择模块节点的公共模式,添加到公共模式列表中。
[0049]
本实施例中,所述的第二判断模块包括:
[0050]
节点选择模块,其用于遍历第一网页元素选择模块中的节点node1_i的属性property_k,从第二网页元素选择模块的节点中选择存在node_i.property_k.name的节点node2_j;其中,node1_i表示第一网页元素选择模块中的第i个节点,property_k表示第k个属性,node1_i.property_k.name表示第一网页元素选择模块中的第i个节点第k个属性的名称,node2_j表示第二网页元素选择模块中的第j个节点;
[0051]
属性值合并模块,其用于根据属性匹配模式,合并节点选择模块中选择的两个节点node1_i、node2_j的属性值,得到属性合并值;
[0052]
公共模式列表添加模块,其用于将属性匹配模式和属性合并值合成为一个jtoken对象,将属性名称property_k.name和jtoken作为一个json对象添加到公共模式列表中。
[0053]
本实施例中,所述的属性值合并模块包括:
[0054]
属性匹配规则判断模块,其用于判断节点选择模块中选择的两个节点node1_i、node2_j的属性匹配规则和属性值,若节点node1_i、node2_j的属性匹配规则相同,且属性值也相同,则直接返回属性值作为属性合并值;若两个节点的匹配规则相同,但属性值不相同,则返回null作为属性合并值;若两个节点的匹配规则不相同,则转为正则匹配,并将两个节点的属性值转化为正则值,进入正则值匹配模块;
[0055]
正则值匹配模块,其用于判断属性匹配规则判断模块输出的两个节点的正则值是否相等,若相等,则直接返回正则匹配模式和正则值作为属性合并值;若不相等,则分别对两个节点的原始属性值加正则符号,得到处理后的两个字符串,返回两个字符串相加后的结果作为属性合并值。
[0056]
本实施例中,所述的模式匹配模块包括:
[0057]
dom结构树获取模块,其用于获取网页界面的dom结构树;
[0058]
dom树节点遍历模块,其用于采用广度优先搜索算法自下而上遍历dom树,判断dom树中的当前节点元素是否为《body》或者《html》元素,若是,则进入相似元素列表输出模块,否则进入dom树节点匹配模块;
[0059]
dom树节点匹配模块,其用于将dom树中的当前节点元素的use属性值设为true,并与公共模式抽取模块得到的公共模式列表进行模式匹配,若匹配成功,则将dom树中的当前节点元素添加至相似元素列表;
[0060]
相似元素列表输出模块,其用于返回最终的相似元素列表。
[0061]
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0062]
本发明的系统的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。系统实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本实施例提供的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中系统所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0063]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的rpa系统网页相似元素获取方法。
[0064]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0065]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1