CN115033822A - 一种元素定位方法、装置、设备及可读存储介质 - Google Patents
一种元素定位方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115033822A CN115033822A CN202210668376.4A CN202210668376A CN115033822A CN 115033822 A CN115033822 A CN 115033822A CN 202210668376 A CN202210668376 A CN 202210668376A CN 115033822 A CN115033822 A CN 115033822A
- Authority
- CN
- China
- Prior art keywords
- xpath
- hierarchy
- target
- attribute
- target element
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004807 localization Effects 0.000 claims description 7
- 239000002131 composite material Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种元素定位方法、装置、设备及可读存储介质,方法包括:先确定要定位的目标元素,以及目标元素在DOM树上的层级,进而可以提取目标元素的属性,以及提取目标元素所在层级的上一层级至DOM树根节点的每个层级的元素的属性,再根据每个层级提取到的属性生成对应的XPath集合,对每个层级生成的XPath集合,查询其是否存在能够定位到本层级的XPath,若是,则将查询到的XPath作为该层级的候选XPath,若否,则将由最少属性数生成的XPath作为该层级的候选XPath,最后,按照DOM树的层级顺序将各个层级的候选XPath组合成综合XPath,用于目标元素的定位。本申请将由最少属性数生成的XPath作为该层级的候选XPath,在没有定位得到本层级的候选XPath时,避免了无法进行元素定位的情况。
Description
技术领域
本申请涉及数据处理技术领域,更具体地说,涉及一种元素定位方法、装置、设备及可读存储介质。
背景技术
网页自动化过程中需要对页面的元素进行定位,现有技术中,有多种元素定位方法,示例如:id属性定位、class属性定位、name属性定位,或其他属性定位,但这些定位方法基本都存在一定的问题。
上述的id属性定位方法,利用页面中的id必须是唯一的这一特征,在页面DOM树中根据id去定位元素,但实际页面中很多元素没有id或者是id动态生成的,此方法不一定能定位得到元素。
另外class属性定位、name属性定位,或其他属性定位等方法,是在页面DOM树中根据class属性、name属性,或其它属性去定位元素,但元素的class属性、name属性,或其它属性可能存在多个,因此,上述的方法也不一定能定位得到元素。
而直接提取元素的绝对路径XPath,即为XML路径语言(XML Path Language)去定位元素,如果元素所在路径的层级、位置或属性出现变动,就需要确定元素的XPath,这种定位方法稳定性较低。
因此,如何实现稳定地对元素定位是个值得研究的问题。
发明内容
有鉴于此,本申请提供了一种元素定位方法、装置、设备及可读存储介质,用于提高元素定位的稳定性。
为了实现上述目的,现提出的方案如下:
一种元素定位方法,包括:
确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
根据每个所述层级的属性,生成该层级对应的XPath集合;
查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
优选地,所述根据每个所述层级的属性,生成该层级对应的XPath集合,包括:
确定每个所述层级的各个属性的所有属性组合;
生成每一种所述属性组合对应的XPath,每个所述层级下所有所述属性组合对应的XPath组合成该层级的XPath集合。
优选地,所述确定每个所述层级的各个属性的所有属性组合,包括:
在每个所述层级的各个属性中,确定该层级的目标属性,所述目标属性为在所述目标元素所在的页面中,出现次数处于设定的次数范围内的属性;
确定每个所述层级的目标属性的所有属性组合。
优选地,部分层级包括多条候选XPath,所述综合XPath对应的有多条;
所述按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath,包括:
从每个所述层级的候选XPath中选出一条候选XPath,并按层级顺序将各个层级中选出的候选XPath组合成一条综合XPath,直至各个所述层级的每条候选XPath都用于组合综合XPath,得到多条综合XPath;
从所述多条综合XPath中确定目标XPath。
优选地,所述从所述多条综合XPath中确定目标XPath,包括:
查询所述多条综合XPath中,是否存在定位的位置中有且仅有所述目标元素的目标综合XPath;
若是,则在查询得到的目标综合XPath中,将字符数最少的一条目标综合XPath确定为目标XPath;
若否,则提取所述目标元素的绝对路径XPath0,并将所述XPath0确定为目标XPath。
优选地,在所述根据每个所述层级的属性,生成该层级对应的XPath集合之后,还包括:
在所述目标元素所在层级对应的XPath集合中,查询是否存在定位的位置中有且仅有所述目标元素的XPath;
若是,则将查询得到的XPath确定为目标XPath。
优选地,还包括:
若所述目标XPath定位的位置不存在所述目标元素,或所述目标XPath定位的位置存在多个元素时,则截取所述目标元素的目标图片,以及所述目标元素所在页面的页面图片;
根据所述目标图片上第一设定点的第一预设坐标,以及所述页面图片上第二设定点的第二预设坐标,定位所述目标元素。
一种元素定位装置,包括:
目标元素确定单元,用于确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
属性提取单元,用于提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
XPath集合生成单元,用于根据每个所述层级的属性,生成该层级对应的XPath集合;
候选XPath确定单元,用于查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
目标XPath确定单元,用于按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
一种元素定位设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述元素定位方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述元素定位方法的各个步骤。
从上述方案可以看出,本申请提供的元素定位方法,先确定要定位的目标元素,以及目标元素在DOM树上的层级,进而可以提取目标元素的属性,以及提取目标元素所在层级的上一层级至DOM树根节点的每个层级的元素的属性,再根据每个层级提取到的属性生成该层级对应的XPath集合,查询每个层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将该XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath,最后,按照DOM树的层级顺序将各个层级的候选XPath组合成综合XPath,用于目标元素的定位。
由于,由数量较少的属性生成的XPath,其对应的定位范围也较小,相对于数量较多的属性生成的XPath的定位更精准,因此,当某个层级的XPath集合中不存在能够定位到该层级的候选XPath时,本申请可以将由最少属性数生成的XPath作为该层级的候选XPath,进而将各层级的候选XPath组合成的综合XPath对应的定位范围更小、更精准,同时也避免了不存在定位得到本层级的候选XPath时,就无法进行元素定位的情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种元素定位方法的流程示意图;
图2为本申请实施例公开的一种元素定位装置的结构示意图;
图3为本申请实施例公开的一种元素定位设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
接下来对本申请的元素定位方法进行详细的介绍,请参照图1,图1为本申请实施例中提供的一种元素定位方法的流程示意图,该方法包括:
步骤S100:确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素。
具体的,确定人工指定的所要定位的目标元素,及目标元素在其所在的DOM树中所处的层级,目标元素可以是DOM树的元素。
其中,DOM(Document Object Model)代表文档对象模型。DOM将HTML文档视为节点树,即DOM树,一个节点代表一个HTML元素。DOM是一个编程接口,允许开发人员从文档中创建、更改或删除元素。
步骤S110:提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性。
具体的,对于目标元素所在的层级,可以提取目标元素的属性作为该层级的属性,而对于目标元素所在层级之外的各个层级,即目标元素所在层级的上一层级至DOM树根节点的各个层级,可以提取各个层级所有元素的属性作为对应层级的属性。
需要说明的是,每个元素的属性可以存在一个以上,元素的属性可以包括多种类型,示例如:元素的id、元素的class、或元素的name等,或其它属性。
步骤S120:根据每个所述层级的属性,生成该层级对应的XPath集合。
具体的,不同的属性可以对应生成不同的XPath,因此可以根据上述步骤S110得到的每个层级元素的属性,生成各个层级对应的XPath集合。
步骤S130:确定各个层级的候选XPath。
具体的,分别查询每个层级的对应的XPath集合,确认每个层级的XPath集合中是否存在定位的位置处于该层级的XPath,其中,能够定位该层级的任意一个元素的XPath,可以确定为定位的位置处于该层级的XPath。
针对每个层级,若存在定位的位置处于该层级的XPath,则可以将其确定为该层级的候选XPath,若不存在定位的位置处于该层级的XPath,则可以在该层级对应的XPath集合中,将由最少属性数生成的XPath确定为该层级的候选XPath。
步骤S140:按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
具体的,可以从DOM树的根节点开始,按照层级顺序将各个层级的候选XPath组合成综合XPath,进而可以将综合XPath用于定位目标元素。
从上述方案可以看出,本申请可以基于每个层级的元素的属性生成的XPath集合,确定能够定位本层级的候选XPath,若XPath集合中的XPath不存在可以定位本层级的XPath,那么则可以将由最少属性数生成的XPath作为本层级的候选XPath,进而可以按层级顺序将各个候选XPath组合成综合XPath。显然,由较少数量的属性生成的XPath以及定位到本层级的XPath组合而成的综合XPath,定位范围更小更精准,并且,本申请可以稳定得到综合XPath,即可以稳定进行元素定位。
考虑到,目标元素所在层级对应的XPath集合可能存在能够定位目标元素的XPath,因此,本申请实施例在上述步骤S120,所述根据每个所述层级的属性,生成该层级对应的XPath集合之后,还可以增加一个直接确定目标XPath的过程。
具体的,该过程可以包括以下步骤:
S1、在所述目标元素所在层级对应的XPath集合中,查询是否存在定位的位置中有且仅有所述目标元素的XPath。
S2、若是,则可以将查询得到的XPath确定为目标XPath。
从上述方案可以看出,若在目标元素所在层级对应的XPath集合中,存在定位到目标元素的XPath,则可以不进行上述的步骤S130,确定各个层级的候选XPath及其后续步骤,而是可以直接将定位到目标元素的XPath作为目标XPath。
在本申请的一些实施例中,介绍了上述步骤S120,根据每个所述层级的属性,生成该层级对应的XPath集合,接下来将对该过程作进一步说明。
具体的,该过程可以包括以下步骤:
S1、确定每个所述层级的各个属性的所有属性组合。
具体的,每个层级可以包括多个元素,而每个元素的属性可以有多个,因此可以确定每个层级的各个属性的所有属性组合。
具体的,对每一层级的属性,进行排列组合,得到该层级所有的属性组合,并根据每一个属性组合生成对应的XPath,一种可选的方式下,可以用以下公式确定每个层级的各个属性所有属性组合的数量:
上述公式中,C表示组合,n表示属性总数,m表示选择属性个数,通过该公式,可以用排列组合的方式计算出基于当前层级的属性可生成XPath的所有可能项。
S2、生成每一种所述属性组合对应的XPath,每个所述层级下所有所述属性组合对应的XPath组合成该层级的XPath集合。
具体的,可以将本层级通过不同组合方式的属性组合,生成的各自对应的XPath,并将各条XPath组合成本层级的XPath集合。
在此基础上,还可以对上述步骤S1作进一步说明。
考虑到,某些元素的属性在目标元素所在的页面的出现次数较多,因此包含该属性的属性组合,对应生成的XPath可以定位得到的较多元素。
为了较少出现次数较多属性对目标元素定位的干扰,本申请实施例可以对用于生成XPath的属性进行筛选。
具体的,对于在页面中出现次数大于设定次数的属性,可以将其淘汰,淘汰的属性后续不再用于生成对应的XPath,而未达到该设定次数的属性,即出现次数处于设定范围的属性可以作为目标属性,进而可以确定每个层级的目标属性,并确定每个层级各个目标属性的所有属性组合,最后可以根据目标属性的各个属性组合生成对应的XPath。
上述介绍的设定次数可以依据实际页面的属性出现次数情况进行确定,可选的,本申请的设定次数可以是3,即可以将出现次数小于或等于3次的属性可以作为目标属性,用于后续生成XPath。
从上述方案可以看出,基于限定出现次数的目标属性生成各条XPath,可以减少定位目标元素的干扰,更快速实现目标元素定位。
在本申请的一些实施例中,介绍了上述步骤S140,按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath的过程,接下来将对该过程作进一步说明。
具体的,部分层级可以包括多条候选XPath,那么综合XPath对应的可以有多条,组合综合XPath的过程可以包括以下步骤:
S1、从每个所述层级的候选XPath中选出一条候选XPath,并按层级顺序将各个层级中选出的候选XPath组合成一条综合XPath,直至各个所述层级的每条候选XPath都用于组合综合XPath,得到多条综合XPath。
具体的,当任意一个层级的候选XPath为,由该层级的XPath集合中最少属性数生成的XPath时,考虑到由最少属性数生成的XPath可能存在一条以上,因此,将该层级的候选XPath进行组合时,可以选出其中一条候选XPath进行组合,该层级不同的候选XPath,连同其它层级的候选XPath,可以对应生成不同的综合XPath,当各个层级的每条候选XPath都用于组合综合XPath后,可以得到多条综合XPath。
S2、从所述多条综合XPath中确定目标XPath。
具体的,确定目标XPath的过程可以包括以下步骤:
S21、查询所述多条综合XPath中,是否存在定位的位置中有且仅有所述目标元素的目标综合XPath,若是,则执行S22,若否,则执行S23。
具体的,若存在定位的位置中有且仅有目标元素的目标综合XPath,则可以说明,存在有效的综合XPath,若不存在,则说明所有的综合XPath均无效。
S22、在查询得到的目标综合XPath中,将字符数最少的一条目标综合XPath确定为目标XPath。
具体的,查询得到的目标综合XPath可能存在多条,因此可以将字符数最少的一条目标综合XPath确定为目标XPath。
S23、提取所述目标元素的绝对路径XPath0,并将所述XPath0确定为目标XPath。
具体的,XPath0可以是目标元素在DOM树上的绝对路径,基于绝对路径可以定位目标元素,因此可以将XPath0确定为目标XPath。
从上述方案可以看出,本申请实施例可以提供多种确定目标XPath的方案,定位目标元素也更灵活。
考虑到,目标XPath也可能无法定位到目标元素,在此情况下,本申请实施例还可以增加一个图像解析定位目标元素的过程。
具体的,该过程可以包括以下步骤:
S1、若所述目标XPath定位的位置不存在所述目标元素,或所述目标XPath定位的位置存在多个元素时,则截取所述目标元素的目标图片,以及所述目标元素所在页面的页面图片。
具体的,截取的目标图片可以是完整包含目标元素的图片,而页面图片可以是目标元素所在页面整个页面的图片,并且,可以对目标图片和页面图片进行灰度处理,得到灰度的目标图片和页面图片。
S2、根据所述目标图片上第一设定点的第一预设坐标,以及所述页面图片上第二设定点的第二预设坐标,定位所述目标元素。
具体的,对于灰度处理的目标图片和页面图片,可以根据两张图片上设定点的预设坐标,定位目标元素的位置。
其中,第一、第二设定点可以是任意指定的参考点,示例如图片的左上角顶点,中点等。
一种可选方式下,可以利用下述公式确定目标元素的位置:
上式中,(x’,y’)为目标图片设定点的坐标,(x,y)为页面图片设定点的坐标,T(x’,y’)为目标元素灰度值,I(x,y)为页面灰度值,R(x,y)为2维矩阵
然后,可以提取矩阵R中,大于设定值的坐标,且在大于设定值的坐标中选取值最大的坐标作为目标坐标,用于定位目标元素,其中,矩阵R的设定值可以依据实际情况确定,本申请实施例以0.85为例。
从上述方案可以看出,当通过目标XPath无法定位任何元素或者定位多个元素时,可以通过图像解析返回的坐标定位元素。
下面对本申请实施例提供的元素定位装置进行描述,下文描述的元素定位装置与上文描述的元素定位方法可相互对应参照。
首先,结合图2对元素定位装置进行介绍,如图2所示,该元素定位装置可以包括:
目标元素确定单元,用于确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
属性提取单元,用于提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
XPath集合生成单元,用于根据每个所述层级的属性,生成该层级对应的XPath集合;
候选XPath确定单元,用于查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
目标XPath确定单元,用于按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
可选的,所述XPath集合生成单元,可以包括:
属性组合确定单元,用于确定每个所述层级的各个属性的所有属性组合;
XPath生成单元,用于生成每一种所述属性组合对应的XPath,每个所述层级下所有所述属性组合对应的XPath组合成该层级的XPath集合。
可选的,所述属性组合确定单元,可以包括:
目标属性确定单元,用于在每个所述层级的各个属性中,确定该层级的目标属性,所述目标属性为在所述目标元素所在的页面中,出现次数处于设定的次数范围内的属性;
目标属性组合确定单元,用于确定每个所述层级的目标属性的所有属性组合。
可选的,部分层级包括多条候选XPath,所述综合XPath对应的有多条;
所述目标XPath确定单元,可以包括:
综合XPath组合单元,用于从每个所述层级的候选XPath中选出一条候选XPath,并按层级顺序将各个层级中选出的候选XPath组合成一条综合XPath,直至各个所述层级的每条候选XPath都用于组合综合XPath,得到多条综合XPath;
目标XPath获取单元,用于从所述多条综合XPath中确定目标XPath。
可选的,所述目标XPath获取单元,可以包括:
目标综合XPath查询单元,用于查询所述多条综合XPath中,是否存在定位的位置中有且仅有所述目标元素的目标综合XPath;
目标XPath选定单元,用于若所述多条综合XPath中,存在定位的位置中有且仅有所述目标元素的目标综合XPath,则在查询得到的目标综合XPath中,将字符数最少的一条目标综合XPath确定为目标XPath;
绝对路径提取单元,用于若所述多条综合XPath中,不存在定位的位置中有且仅有所述目标元素的目标综合XPath,则提取所述目标元素的绝对路径XPath0,并将所述XPath0确定为目标XPath。
可选的,所述元素定位装置,还可以包括:
目标XPath直接查询单元,用于在所述目标元素所在层级对应的XPath集合中,查询是否存在定位的位置中有且仅有所述目标元素的XPath;
目标XPath选择单元,用于若在所述目标元素所在层级对应的XPath集合中,存在定位的位置中有且仅有所述目标元素的XPath,则将查询得到的XPath确定为目标XPath。
可选的,所述元素定位装置,还可以包括:
图片截取单元,用于若所述目标XPath定位的位置不存在所述目标元素,或所述目标XPath定位的位置存在多个元素时,则截取所述目标元素的目标图片,以及所述目标元素所在页面的页面图片;
目标元素定位单元,用于根据所述目标图片上第一设定点的第一预设坐标,以及所述页面图片上第二设定点的第二预设坐标,定位所述目标元素。
本申请实施例提供的元素定位装置可应用于元素定位设备。图3示出了元素定位设备的硬件结构框图,参照图3,元素定位设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
根据每个所述层级的属性,生成该层级对应的XPath集合;
查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
根据每个所述层级的属性,生成该层级对应的XPath集合;
查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种元素定位方法,其特征在于,包括:
确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
根据每个所述层级的属性,生成该层级对应的XPath集合;
查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述层级的属性,生成该层级对应的XPath集合,包括:
确定每个所述层级的各个属性的所有属性组合;
生成每一种所述属性组合对应的XPath,每个所述层级下所有所述属性组合对应的XPath组合成该层级的XPath集合。
3.根据权利要求2所述的方法,其特征在于,所述确定每个所述层级的各个属性的所有属性组合,包括:
在每个所述层级的各个属性中,确定该层级的目标属性,所述目标属性为在所述目标元素所在的页面中,出现次数处于设定的次数范围内的属性;
确定每个所述层级的目标属性的所有属性组合。
4.根据权利要求1所述的方法,其特征在于,部分层级包括多条候选XPath,所述综合XPath对应的有多条;
所述按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath,包括:
从每个所述层级的候选XPath中选出一条候选XPath,并按层级顺序将各个层级中选出的候选XPath组合成一条综合XPath,直至各个所述层级的每条候选XPath都用于组合综合XPath,得到多条综合XPath;
从所述多条综合XPath中确定目标XPath。
5.根据权利要求4所述的方法,其特征在于,所述从所述多条综合XPath中确定目标XPath,包括:
查询所述多条综合XPath中,是否存在定位的位置中有且仅有所述目标元素的目标综合XPath;
若是,则在查询得到的目标综合XPath中,将字符数最少的一条目标综合XPath确定为目标XPath;
若否,则提取所述目标元素的绝对路径XPath0,并将所述XPath0确定为目标XPath。
6.根据权利要求1所述的方法,其特征在于,在所述根据每个所述层级的属性,生成该层级对应的XPath集合之后,还包括:
在所述目标元素所在层级对应的XPath集合中,查询是否存在定位的位置中有且仅有所述目标元素的XPath;
若是,则将查询得到的XPath确定为目标XPath。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
若所述目标XPath定位的位置不存在所述目标元素,或所述目标XPath定位的位置存在多个元素时,则截取所述目标元素的目标图片,以及所述目标元素所在页面的页面图片;
根据所述目标图片上第一设定点的第一预设坐标,以及所述页面图片上第二设定点的第二预设坐标,定位所述目标元素。
8.一种元素定位装置,其特征在于,包括:
目标元素确定单元,用于确定目标元素及其所在层级,所述目标元素为DOM树中除根节点外的任一元素;
属性提取单元,用于提取所述目标元素所在层级至所述DOM树根节点之间的每个层级的元素的属性,其中,将所述目标元素的属性作为所述目标元素所在层级的属性,对于所述目标元素所在层级的上一层级至所述DOM树根节点之间的各个层级,将每个层级中所有元素的属性作为该层级的属性,所述目标元素以及每个所述元素的属性均存在一个以上;
XPath集合生成单元,用于根据每个所述层级的属性,生成该层级对应的XPath集合;
候选XPath确定单元,用于查询每个所述层级对应的XPath集合中,是否存在定位的位置处于该层级的XPath,若是,则将所述XPath确定为该层级的候选XPath,若否,则将由最少属性数生成的XPath确定为该层级的候选XPath;
目标XPath确定单元,用于按层级顺序将各个层级的候选XPath组合成综合XPath,所述综合XPath作为用于定位所述目标元素的目标XPath。
9.一种元素定位设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-7任一项的元素定位方法的各个步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项的元素定位方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668376.4A CN115033822B (zh) | 2022-06-14 | 2022-06-14 | 一种元素定位方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668376.4A CN115033822B (zh) | 2022-06-14 | 2022-06-14 | 一种元素定位方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033822A true CN115033822A (zh) | 2022-09-09 |
CN115033822B CN115033822B (zh) | 2024-05-17 |
Family
ID=83124048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668376.4A Active CN115033822B (zh) | 2022-06-14 | 2022-06-14 | 一种元素定位方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033822B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117520690A (zh) * | 2024-01-05 | 2024-02-06 | 易方信息科技股份有限公司 | 基于css样式预渲染对比的ui自动化方法及相关装置 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030200502A1 (en) * | 2002-04-23 | 2003-10-23 | International Business Machines Corporation | Generating and utilizing robust XPATH expressions |
US20080244380A1 (en) * | 2007-03-27 | 2008-10-02 | Canon Kabushiki Kaisha | Method and device for evaluating an expression on elements of a structured document |
US7467157B1 (en) * | 2007-08-20 | 2008-12-16 | International Business Machines Corporation | Generation of semantically valid xpath expressions |
CN101593184A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 自适应地定位动态网页元素的系统和方法 |
US7660815B1 (en) * | 2006-06-30 | 2010-02-09 | Amazon Technologies, Inc. | Method and system for occurrence frequency-based scaling of navigation path weights among online content sources |
CN104881478A (zh) * | 2015-06-02 | 2015-09-02 | 吴小宇 | 一种网页页面定位识别系统及定位识别方法 |
US20150356094A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
WO2015187155A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
CN110110198A (zh) * | 2017-12-28 | 2019-08-09 | 中移(苏州)软件技术有限公司 | 一种网页信息抽取方法及装置 |
CN110399063A (zh) * | 2019-07-19 | 2019-11-01 | 口碑(上海)信息技术有限公司 | 页面元素属性的查看方法及装置 |
CN111368241A (zh) * | 2020-03-05 | 2020-07-03 | 苏州数字力量教育科技有限公司 | 基于XPath的网页元素识别方法 |
US20200250254A1 (en) * | 2019-02-04 | 2020-08-06 | Cloudflare, Inc. | Web browser remoting across a network using draw commands |
CN111580902A (zh) * | 2020-04-20 | 2020-08-25 | 微梦创科网络科技(中国)有限公司 | 一种基于图片分析的移动端元素定位方法及系统 |
CN111679976A (zh) * | 2020-05-28 | 2020-09-18 | 泰康保险集团股份有限公司 | 一种页面对象的查找方法及装置 |
US20210141498A1 (en) * | 2019-11-11 | 2021-05-13 | Klarna Bank Ab | Unsupervised location and extraction of quantity and unit value elements in a user interface |
CN113094617A (zh) * | 2021-03-30 | 2021-07-09 | 厦门立林科技有限公司 | 一种web元素定位方法及其应用和存储介质 |
CN113177168A (zh) * | 2021-04-29 | 2021-07-27 | 上海云扩信息科技有限公司 | 一种基于Web元素属性特征的定位方法 |
CN113254751A (zh) * | 2021-06-24 | 2021-08-13 | 北森云计算有限公司 | 一种复杂网页结构化信息精确提取方法、设备及存储介质 |
CN114120307A (zh) * | 2021-12-02 | 2022-03-01 | 壹沓科技(上海)有限公司 | 显示内容的识别方法、装置、设备和存储介质 |
-
2022
- 2022-06-14 CN CN202210668376.4A patent/CN115033822B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030200502A1 (en) * | 2002-04-23 | 2003-10-23 | International Business Machines Corporation | Generating and utilizing robust XPATH expressions |
US7660815B1 (en) * | 2006-06-30 | 2010-02-09 | Amazon Technologies, Inc. | Method and system for occurrence frequency-based scaling of navigation path weights among online content sources |
US20080244380A1 (en) * | 2007-03-27 | 2008-10-02 | Canon Kabushiki Kaisha | Method and device for evaluating an expression on elements of a structured document |
US7467157B1 (en) * | 2007-08-20 | 2008-12-16 | International Business Machines Corporation | Generation of semantically valid xpath expressions |
CN101593184A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 自适应地定位动态网页元素的系统和方法 |
US20150356094A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
WO2015187155A1 (en) * | 2014-06-04 | 2015-12-10 | Waterline Data Science, Inc. | Systems and methods for management of data platforms |
CN104881478A (zh) * | 2015-06-02 | 2015-09-02 | 吴小宇 | 一种网页页面定位识别系统及定位识别方法 |
CN110110198A (zh) * | 2017-12-28 | 2019-08-09 | 中移(苏州)软件技术有限公司 | 一种网页信息抽取方法及装置 |
US20200250254A1 (en) * | 2019-02-04 | 2020-08-06 | Cloudflare, Inc. | Web browser remoting across a network using draw commands |
CN110399063A (zh) * | 2019-07-19 | 2019-11-01 | 口碑(上海)信息技术有限公司 | 页面元素属性的查看方法及装置 |
US20210141498A1 (en) * | 2019-11-11 | 2021-05-13 | Klarna Bank Ab | Unsupervised location and extraction of quantity and unit value elements in a user interface |
CN111368241A (zh) * | 2020-03-05 | 2020-07-03 | 苏州数字力量教育科技有限公司 | 基于XPath的网页元素识别方法 |
CN111580902A (zh) * | 2020-04-20 | 2020-08-25 | 微梦创科网络科技(中国)有限公司 | 一种基于图片分析的移动端元素定位方法及系统 |
CN111679976A (zh) * | 2020-05-28 | 2020-09-18 | 泰康保险集团股份有限公司 | 一种页面对象的查找方法及装置 |
CN113094617A (zh) * | 2021-03-30 | 2021-07-09 | 厦门立林科技有限公司 | 一种web元素定位方法及其应用和存储介质 |
CN113177168A (zh) * | 2021-04-29 | 2021-07-27 | 上海云扩信息科技有限公司 | 一种基于Web元素属性特征的定位方法 |
CN113254751A (zh) * | 2021-06-24 | 2021-08-13 | 北森云计算有限公司 | 一种复杂网页结构化信息精确提取方法、设备及存储介质 |
CN114120307A (zh) * | 2021-12-02 | 2022-03-01 | 壹沓科技(上海)有限公司 | 显示内容的识别方法、装置、设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117520690A (zh) * | 2024-01-05 | 2024-02-06 | 易方信息科技股份有限公司 | 基于css样式预渲染对比的ui自动化方法及相关装置 |
CN117520690B (zh) * | 2024-01-05 | 2024-04-09 | 易方信息科技股份有限公司 | 基于css样式预渲染对比的ui自动化方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115033822B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6915304B2 (en) | System and method for converting an XML data structure into a relational database | |
US7370270B2 (en) | XML schema evolution | |
US7260572B2 (en) | Method of processing query about XML data using APEX | |
US7120869B2 (en) | Enhanced mechanism for automatically generating a transformation document | |
US20050050092A1 (en) | Direct loading of semistructured data | |
US20060293879A1 (en) | Learning facts from semi-structured text | |
JP2010501096A (ja) | ラッパー生成およびテンプレート検出の協同最適化 | |
WO2005052810A1 (en) | Method of constructing preferred views of hierarchical data | |
US7831614B2 (en) | System and method for generating SQL using templates | |
JP2008052662A (ja) | 構造化文書管理システム及びプログラム | |
CN110019823B (zh) | 更新知识图谱的方法及装置 | |
KR20120022957A (ko) | Rdf 데이터베이스 질문을 위한 rdf 데이터베이스를 생성하기 위한 방법 및 디바이스, 및 rdf 데이터베이스 질문을 위한 검색 방법 및 검색 디바이스 | |
KR100520301B1 (ko) | 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법 | |
CN112883030A (zh) | 数据收集方法、装置、计算机设备和存储介质 | |
EP4141690A1 (en) | Automated transformation of hierarchical data from a source data format to a target data format | |
CN115033822A (zh) | 一种元素定位方法、装置、设备及可读存储介质 | |
CN113434482A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
US9367642B2 (en) | Flexible storage of XML collections within an object-relational database | |
CN113177168A (zh) | 一种基于Web元素属性特征的定位方法 | |
JP2005227851A (ja) | 構造化データ記憶方法および装置 | |
CN114168591A (zh) | 寻找树形结构数据路径节点的方法 | |
US8086606B1 (en) | Performing a keyword search based on identifying exclusive lowest common ancestor (ELCA) nodes | |
CN110532457B (zh) | 一种获取网络段id方法及系统 | |
Matuszka et al. | Geodint: towards semantic web-based geographic data integration | |
US8407209B2 (en) | Utilizing path IDs for name and namespace searches |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |