CN114518883A - 一种基于dom树的rpa系统网页元素定位方法和系统 - Google Patents
一种基于dom树的rpa系统网页元素定位方法和系统 Download PDFInfo
- Publication number
- CN114518883A CN114518883A CN202210160937.XA CN202210160937A CN114518883A CN 114518883 A CN114518883 A CN 114518883A CN 202210160937 A CN202210160937 A CN 202210160937A CN 114518883 A CN114518883 A CN 114518883A
- Authority
- CN
- China
- Prior art keywords
- elements
- list
- attribute
- matching
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出了一种基于DOM树的RPA系统网页元素定位方法和系统,属于机器人流程自动化(RPA)技术领域。包括:利用RPA系统获取目标元素以及DOM结构树;从下往上依次遍历DOM结构树,利用自定义元素结构存储当前元素的属性并加入节点列表中;采取广度优先搜索算法寻找当前元素是否存在相同元素属性的兄弟元素,若存在则将该元素的"index"对象的"use"属性值设置为true;最后将保存了目标元素在DOM结构树中的路径位置的节点列表返回给后台,根据该路径位置即可实现目标元素的定位任务。
Description
技术领域
本发明涉及机器人流程自动化(Robotic Process Automation,简称RPA)技术领域,具体地涉及一种基于DOM树的RPA系统网页元素定位方法和系统。
背景技术
自大型工厂陆续引入流水线机器人以来,工厂流水线自动化率显著提高,然而与此形成鲜明对比的是,办公自动化率依旧极低,办公作业几乎全部需人工完成。目前,企业纷纷选择像工厂引入流水线硬件机器人一样在办公室引入软件机器人来降本增效,将一些重复、简单的工作交给软件机器人完成。实施人员按照业务需求简化业务流程,利用RPA模拟人的鼠标、键盘操作,比如点击网页中的超链接、输入一段文字等,代替人与业务系统进行交互,完成处理业务的一系列动作并通过部署在电脑或者服务器端的RPA机器人实现业务流程全自动化运行。
在RPA系统操作中,有很大一部分是网页界面操作。因此,如何对网页元素进行精准定位是RPA的一项关键技术。DOM结构树是W3C组织推荐的处理可扩展置标语言的标准编程接口,精确地描述了HTML文档中标签间的相互关联性,利用JavaScript编程语言即可实现对网页元素的各种操作,例如,获取目标元素的属性、获取目标元素的父元素等。
现有的网页元素定位方法主要采用网页解析器以及利用AI技术进行目标元素检测识别,前者无法对一些特殊场景的网页元素进行精准定位,后者需要依靠大量的人工标注数据训练模型,工作量大,且定位准确性严重依赖于模型及数据集。
发明内容
针对上述问题,本发明提供了一种基于DOM树的RPA系统网页元素定位方法和系统,采用的技术方案如下:
一种基于DOM树的RPA系统网页元素定位方法,包括如下步骤:
S1:利用RPA系统获取网页界面目标元素以及DOM结构树;初始化时,将目标元素作为当前元素;
S2:判断当前元素是否为<body>或者<html>标签元素,若当前元素为<body>或者<html>元素,则进入S6,否则进入S3;
S3:获取当前元素在DOM结构树中的属性,并通过自定义元素结构存储,将其"tagName"对象的"use"属性设置为true,"id"对象、"class"对象、"index"对象的"use"属性均设置为false,即仅启用当前元素的"tagName"对象;将当前元素加入节点列表中;
S4:判断当前元素是否存在相同元素属性的兄弟元素,若存在,则将该元素的"index"对象的"use"属性值设置为true,即启用当前元素的"index"对象;
S5:将当前元素更新为其父元素,并循环进入S2;
S6:倒序遍历节点列表,除第一个带有"id"对象的元素外,设置其余元素的"id"对象的"use"属性为false,即仅启用倒数第一个带有"id"对象的元素;
S7:返回节点列表,所述的节点列表中存储的是目标元素在DOM结构树中的路径位置,根据该路径位置即可实现目标元素的定位任务。
进一步的,每个自定义元素结构包含四种对象:"tagName"对象、"id"对象、"class"对象和"index"对象;每一种对象均包含"value"属性、"use"属性和"matchMode"属性;其中,"value"属性用于标记该对象的值,称为属性值;"use"属性用于标记是否启用该对象;"matchMode"属性用于标记"value"属性值匹配方法;
在所述的四种对象中,"tagName"对象用于存储元素的标签名称信息,"id"对象用于存储元素的id属性信息,"class"对象用于存储元素的class属性信息,"index"对象用于存储元素在兄弟元素间从左往右的序号信息,序号从0开始。
进一步的,所述的步骤S4具体为:
S4-1:根据DOM结构树,判断当前元素的父元素是否为空,若是,则将<body>标签元素定义为当前元素的父元素;
S4-2:获取当前元素的父元素的子元素,加入元素列表中;
S4-3:依次对节点列表中的元素和元素列表中每个元素进行匹配,若匹配成功,则将节点列表中的元素存入同层次匹配元素列表中,当前节点列表中的元素更新为节点列表中的下一个元素,元素列表更新为同层次匹配元素列表的每个元素的子元素;若匹配不成功,将元素列表更新为原元素列表中的每个元素的子元素;
S4-4:判断同层次匹配元素列表中元素的数量是否大于1,若是,则存在相同元素属性的兄弟元素,将当前元素的"index"对象的"use"属性设置为true。
进一步的,步骤S4-3中的匹配方法为:
采用广度优先搜索算法,循环遍历节点列表,针对当前节点列表中的某一元素,循环遍历元素列表中的元素,一一比较两个元素的属性,如"tagName"对象的"value"属性值、或者"class"对象的"value"属性值是否相等,若相等,则匹配成功,将节点列表中的元素存入同层次匹配元素列表中;待元素列表中的元素完成一次循环后,判断同层次匹配元素列表是否为空;
若同层次匹配元素列表为空,则将元素列表更新为原元素列表中的每个元素的子元素,循环遍历更新后的元素列表中的元素;
若同层次匹配元素列表不为空,则将元素列表更新为同层次匹配元素列表中的每个元素的子元素,当前节点列表中的元素更新为节点列表中的下一个元素,继续匹配,直至完成节点列表中所有元素的匹配工作。
本发明还提供了一种基于DOM树的RPA系统网页元素定位系统,用于实现上述的基于DOM树的RPA系统网页元素定位方法。
本发明能够实现RPA系统在常见或特殊网页场景下网页元素的精准定位,无需利用网页解析器以及AI技术进行元素识别,也无需依赖机器学习模型及带标注的数据集,计算量小,定位精度高。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例示出的一种基于DOM树的RPA系统网页元素定位方法的流程示意图。
具体实施方式
下面结合本申请具体实施例及相应的附图,对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本发明提出的一种基于DOM树的RPA系统网页元素定位方法,包括如下步骤:
S1:利用RPA系统获取网页界面目标元素以及DOM结构树。初始化时,将目标元素作为当前元素。
在本实施例中,RPA系统可通过浏览器插件,如Chrome插件,获取网页界面目标元素,并抓取DOM结构树文件给后台,用于后续定位任务。
S2:判断当前元素是否为<body>或者<html>标签元素。若当前元素为<body>或者<html>元素,则进入S6,否则进入S3。
在本实施例中,对当前元素采取基于DOM结构树自下而上进行遍历。具体地,不断循环获取当前元素的父元素,直到父元素为<body>或者<html>标签元素。
S3:获取当前元素在DOM结构树中的属性,并通过自定义元素结构存储,将其"tagName"对象的"use"属性设置为true,"id"对象、"class"对象、"index"对象的"use"属性均设置为false,即仅启用当前元素的"tagName"对象;将当前元素加入节点列表中;在本实施例中,获取当前元素的对象及属性后采用json格式的自定义元素结构保存,例如表1所示:
表1某一元素的对象及属性
每个自定义元素结构包含四种对象:"tagName"对象、"id"对象、"class"对象和"index"对象;每一种对象均包含"value"属性、"use"属性和"matchMode"属性。本实施例中,"value"属性用于标记该对象的值,称为属性值;"use"属性用于标记是否启用该对象;"matchMode"属性用于标记"value"属性值匹配方法,包括字符串比较方法,记为"equal"、正则表达匹配方法,记为"regexp"、以及通配符匹配方法,记为"wildcard",表1中默认为"equal"。
在所述的四种对象中,"tagName"对象用于存储元素的标签名称信息,"id"对象用于存储元素的id属性信息,"class"对象用于存储元素的class属性信息,"index"对象用于存储元素在兄弟元素间从左往右的序号信息,序号从0开始。S4:判断当前元素是否存在相同元素属性的兄弟元素,若存在,则将该元素的"index"对象的"use"属性值设置为true,即启用当前元素的"index"对象;
这样做的优点在于即使存在相同元素属性的兄弟元素,也能够通过"index"对象精准定位当前元素在同一层次元素中的位置,确保了目标元素在DOM结构树中路径位置的唯一性。
S4-1:根据DOM结构树,判断当前元素的父元素是否为空,若是,则将<body>标签元素定义为当前元素的父元素;本实施例中,通过三目运算符判断。
S4-2:获取当前元素的父元素的子元素,加入元素列表中;
S4-3:依次对节点列表中的元素和元素列表中每个元素进行匹配,若匹配成功,则将节点列表中的元素存入同层次匹配元素列表中,当前节点列表中的元素更新为节点列表中的下一个元素,元素列表更新为同层次匹配元素列表的每个元素的子元素;若匹配不成功,将元素列表更新为原元素列表中的每个元素的子元素;
本实施例中,匹配方法为:
采用广度优先搜索算法,循环遍历节点列表,针对当前节点列表中的某一元素,循环遍历元素列表中的元素,一一比较两个元素的属性,如"tagName"、"class"等对象以及相应的"value"属性值是否相等,若相等,则匹配成功,将节点列表中的元素存入同层次匹配元素列表中;待元素列表中的元素完成一次循环后,判断同层次匹配元素列表是否为空;本领域技术人员可以根据自定义的元素属性修改匹配规则。
若同层次匹配元素列表为空,则将元素列表更新为原元素列表中的每个元素的子元素,循环遍历更新后的元素列表中的元素。
若同层次匹配元素列表不为空,则将元素列表更新为同层次匹配元素列表中的每个元素的子元素,当前节点列表中的元素更新为节点列表中的下一个元素,继续匹配,直至完成节点列表中所有元素的匹配工作。
S4-4:判断同层次匹配元素列表中元素的数量是否大于1,若是,则存在相同元素属性的兄弟元素,将当前元素的"index"对象的"use"属性设置为true;
S5:将当前元素更新为其父元素,并循环进入S2;
S6:倒序遍历节点列表,除第一个带有"id"对象的元素外,设置其余元素的"id"对象的"use"属性为false,即,仅启用倒数第一个带有"id"对象的元素;
在本实施例中,由于"id"对象作为HTML语言中的元素标识,在同一个网页页面中不存在相同的id属性信息,具有唯一性。因此,只需选择最后一个带"id"对象的元素就能完成元素识别任务。
S7:返回节点列表,最终的节点列表中存储的是当前元素在DOM结构树中的路径位置,根据该路径位置即可实现目标元素的定位任务。
在本实施例中,得到如表2所示的目标元素的路径位置。
表2目标元素的路径位置
与前述的一种基于DOM树的RPA系统网页元素定位方法的实施例相对应,本申请还提供了一种基于DOM树的RPA系统网页元素定位系统的实施例,其包括:
网页元素获取模块,其用于获取网页界面目标元素;初始化时,将目标元素作为当前元素;
DOM结构树生成模块,其抓取网页后台DOM结构树;
判断模块,其用于判断当前元素是否为<body>或者<html>标签元素,若当前元素为<body>或者<html>元素,则执行循环模块,否则,执行节点列表处理模块;
循环模块,其用于获取当前元素在DOM结构树中的属性,并通过自定义元素结构存储,将其"tagName"对象的"use"属性设置为true,"id"对象、"class"对象、"index"对象的"use"属性均设置为false,即仅启用当前元素的"tagName"对象;将当前元素加入节点列表中;
以及,其用于判断当前元素是否存在相同元素属性的兄弟元素,若存在,则将该元素的"index"对象的"use"属性值设置为true,即启用当前元素的"index"对象;
以及,其用于将当前元素更新为其父元素,返回判断模块;
节点列表处理模块,其用于倒序遍历节点列表,除第一个带有"id"对象的元素外,设置其余元素的"id"对象的"use"属性为false,即,仅启用倒数第一个带有"id"对象的元素;并返回节点列表,所述的节点列表中存储的是目标元素在DOM结构树中的路径位置;
元素定位模块,其用于执行节点列表处理模块返回的路径位置,实现目标元素的定位任务。
关于上述实施例中的系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为循环模块,可以是或者也可以不是物理上分开的。另外,在本发明中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (5)
1.一种基于DOM树的RPA系统网页元素定位方法,其特征在于,包括如下步骤:
S1:利用RPA系统获取网页界面目标元素以及DOM结构树;初始化时,将目标元素作为当前元素;
S2:判断当前元素是否为<body>或者<html>标签元素,若当前元素为<body>或者<html>元素,则进入S6,否则进入S3;
S3:获取当前元素在DOM结构树中的属性,并通过自定义元素结构存储,将其"tagName"对象的"use"属性设置为true,"id"对象、"class"对象、"index"对象的"use"属性均设置为false,即仅启用当前元素的"tagName"对象;将当前元素加入节点列表中;
S4:判断当前元素是否存在相同元素属性的兄弟元素,若存在,则将该元素的"index"对象的"use"属性值设置为true,即启用当前元素的"index"对象;
S5:将当前元素更新为其父元素,并循环进入S2;
S6:倒序遍历节点列表,除第一个带有"id"对象的元素外,设置其余元素的"id"对象的"use"属性为false,即仅启用倒数第一个带有"id"对象的元素;
S7:返回节点列表,所述的节点列表中存储的是目标元素在DOM结构树中的路径位置,根据该路径位置即可实现目标元素的定位任务。
2.根据权利要求1所述的一种基于DOM树的RPA系统网页元素定位方法,其特征在于,每个自定义元素结构包含四种对象:"tagName"对象、"id"对象、"class"对象和"index"对象;每一种对象均包含"value"属性、"use"属性和
"matchMode"属性;其中,"value"属性用于标记该对象的值,称为属性值;"use"属性用于标记是否启用该对象;"matchMode"属性用于标记"value"属性值匹配方法;
在所述的四种对象中,"tagName"对象用于存储元素的标签名称信息,"id"对象用于存储元素的id属性信息,"class"对象用于存储元素的class属性信息,
"index"对象用于存储元素在兄弟元素间从左往右的序号信息,序号从0开始。
3.根据权利要求1所述的一种基于DOM树的RPA系统网页元素定位方法,其特征在于,所述的步骤S4具体为:
S4-1:根据DOM结构树,判断当前元素的父元素是否为空,若是,则将<body>标签元素定义为当前元素的父元素;
S4-2:获取当前元素的父元素的子元素,加入元素列表中;
S4-3:依次对节点列表中的元素和元素列表中每个元素进行匹配,若匹配成功,则将节点列表中的元素存入同层次匹配元素列表中,当前节点列表中的元素更新为节点列表中的下一个元素,元素列表更新为同层次匹配元素列表的每个元素的子元素;若匹配不成功,将元素列表更新为原元素列表中的每个元素的子元素;
S4-4:判断同层次匹配元素列表中元素的数量是否大于1,若是,则存在相同元素属性的兄弟元素,将当前元素的"index"对象的"use"属性设置为true。
4.根据权利要求3所述的一种基于DOM树的RPA系统网页元素定位方法,步骤S4-3中的匹配方法为:
采用广度优先搜索算法,循环遍历节点列表,针对当前节点列表中的某一元素,循环遍历元素列表中的元素,一一比较两个元素的属性,如"tagName"对象的"value"属性值、或者"class"对象的"value"属性值是否相等,若相等,则匹配成功,将节点列表中的元素存入同层次匹配元素列表中;待元素列表中的元素完成一次循环后,判断同层次匹配元素列表是否为空;
若同层次匹配元素列表为空,则将元素列表更新为原元素列表中的每个元素的子元素,循环遍历更新后的元素列表中的元素;
若同层次匹配元素列表不为空,则将元素列表更新为同层次匹配元素列表中的每个元素的子元素,当前节点列表中的元素更新为节点列表中的下一个元素,继续匹配,直至完成节点列表中所有元素的匹配工作。
5.一种基于DOM树的RPA系统网页元素定位系统,其特征在于,用于实现权利要求1所述的基于DOM树的RPA系统网页元素定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160937.XA CN114518883A (zh) | 2022-02-22 | 2022-02-22 | 一种基于dom树的rpa系统网页元素定位方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210160937.XA CN114518883A (zh) | 2022-02-22 | 2022-02-22 | 一种基于dom树的rpa系统网页元素定位方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114518883A true CN114518883A (zh) | 2022-05-20 |
Family
ID=81599409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210160937.XA Pending CN114518883A (zh) | 2022-02-22 | 2022-02-22 | 一种基于dom树的rpa系统网页元素定位方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114518883A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969478A (zh) * | 2022-05-30 | 2022-08-30 | 上海弘玑信息技术有限公司 | 网页结构检测方法、设备和可读存储介质 |
CN115062206A (zh) * | 2022-05-30 | 2022-09-16 | 上海弘玑信息技术有限公司 | 一种网页元素的搜索方法和电子设备 |
-
2022
- 2022-02-22 CN CN202210160937.XA patent/CN114518883A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969478A (zh) * | 2022-05-30 | 2022-08-30 | 上海弘玑信息技术有限公司 | 网页结构检测方法、设备和可读存储介质 |
CN115062206A (zh) * | 2022-05-30 | 2022-09-16 | 上海弘玑信息技术有限公司 | 一种网页元素的搜索方法和电子设备 |
CN115062206B (zh) * | 2022-05-30 | 2023-04-07 | 上海弘玑信息技术有限公司 | 一种网页元素的搜索方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114518883A (zh) | 一种基于dom树的rpa系统网页元素定位方法和系统 | |
US6606625B1 (en) | Wrapper induction by hierarchical data analysis | |
CN102831121B (zh) | 一种网页信息抽取的方法和系统 | |
Crescenzi et al. | Roadrunner: Towards automatic data extraction from large web sites | |
Arasu et al. | Extracting structured data from web pages | |
US7174328B2 (en) | Selective path signatures for query processing over a hierarchical tagged data structure | |
US20090125529A1 (en) | Extracting information based on document structure and characteristics of attributes | |
US7836098B2 (en) | Accelerating value-based lookup of XML document in XQuery | |
US20080120257A1 (en) | Automatic online form filling using semantic inference | |
US9734147B2 (en) | Clustering repetitive structure of asynchronous web application content | |
CN103020123A (zh) | 一种搜索不良视频网站的方法 | |
Parameswaran et al. | Optimal schemes for robust web extraction | |
CN112181949A (zh) | 一种在线数据建模的方法及装置 | |
US20090204889A1 (en) | Adaptive sampling of web pages for extraction | |
CN113094625B (zh) | 页面元素定位方法、装置、电子设备及存储介质 | |
Han et al. | A formal framework for prefetching based on the type-level access pattern in object-relational DBMSs | |
CN117520690A (zh) | 基于css样式预渲染对比的ui自动化方法及相关装置 | |
CN105138708A (zh) | 一种兴趣点名称的识别方法和装置 | |
JPH09218876A (ja) | ノード・リンク探索装置 | |
CN105912573A (zh) | 数据更新方法及装置 | |
Guo et al. | RED: Redundancy-Driven Data Extraction from Result Pages? | |
CN117390130A (zh) | 一种基于多模态表示的代码搜索方法 | |
CN101183391A (zh) | Css选择子规则匹配方法 | |
CN104504069A (zh) | 一种文档索引的建立方法和装置 | |
CN112540978A (zh) | 宽表生成方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |