CN117608719A - 页面元素查找方法、装置、电子设备及介质 - Google Patents

页面元素查找方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN117608719A
CN117608719A CN202311362277.4A CN202311362277A CN117608719A CN 117608719 A CN117608719 A CN 117608719A CN 202311362277 A CN202311362277 A CN 202311362277A CN 117608719 A CN117608719 A CN 117608719A
Authority
CN
China
Prior art keywords
page
tree
nodes
target page
style
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
Application number
CN202311362277.4A
Other languages
English (en)
Inventor
荣蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN202311362277.4A priority Critical patent/CN117608719A/zh
Publication of CN117608719A publication Critical patent/CN117608719A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本申请实施例提供了页面元素查找方法、装置、电子设备及介质,属于计算机技术领域。该方法包括:响应于页面内容请求,获取与页面内容请求对应的目标页面;对目标页面进行代码解析,生成渲染树;遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面;当确定遍历完渲染树的全部节点,生成加载完成信号;基于加载完成信号接收输入的元素查找请求;在重绘页面上确定与元素查找请求对应的目标元素。本申请实施例,无需设置等待时间,能够在页面加载完成之后,自动进行元素查找。

Description

页面元素查找方法、装置、电子设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种页面元素查找方法、装置、电子设备及介质。
背景技术
目前,随着互联网的高速发展,web网络已经成为世界上最大的信息来源。web网络的发展给人类生活带来了巨大的方便,人们可以跨越时间和空间界限来共享大量信息。整个web网络是由无数的网页页面构成的。页面的海量性、多样性、动态性和半结构化等特性增加了对其内容进行自动处理的难度。如何有效获取这些web页面中的内容为我们所用仍然是大家面临的共同问题。例如,在做用户界面(User Interface,UI)自动化的时候,常常遇到同一个用例,有时跑能成功,有时跑失败的情况。大多数情况是页面加载受网络、设备配置等因素的影响,导致页面加载完成所需的时间不一样。当页面加载完成后,去执行UI自动化中的找元素步骤,此时,能够很好找到元素;当页面还未加载完成,就执行UI自动化中的找元素步骤时,就会报找不到元素的错误。
为了解决这种问题,相关技术会在上一个UI自动化步骤操作完后,在封装找元素的方法里设置一个最大等待时间,当超过这个时间后,就不再等待。这些方案或多或少能解决部分问题,但并不能完全解决。由于无法知道页面什么时候加载完成,因此只能根据经验去等待一个时间,再去执行一下步找元素操作。等待时间设置小了,用例重复执行的成功率会降低,等待时间设置大了,总的执行时间变长,效率降低。因此,如何精准确定查找元素的时机变得尤为重要。
发明内容
本申请实施例的主要目的在于提出一种页面元素查找方法、装置、电子设备及介质,无需设置等待时间,能够在页面加载完成之后,自动进行元素查找。
为实现上述目的,本申请实施例的第一方面提出了一种页面元素查找方法,所述方法包括:
响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
对所述目标页面进行代码解析,生成渲染树;
遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
当确定遍历完所述渲染树的全部节点,生成加载完成信号;
基于所述加载完成信号接收输入的元素查找请求;
在所述重绘页面上确定与所述元素查找请求对应的目标元素。
在一些实施例中,所述对所述目标页面进行代码解析,生成渲染树,包括:
基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,其中,所述词法记号用于表征所述目标页面的源代码中的符号切分,所述文本记号用于表征所述目标页面中的文本信息;
根据所述词法记号以及所述文本记号构建文档对象模型树;
根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树;
将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树。
在一些实施例中,所述基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,包括:
基于所述文件读取函数对所述目标页面进行标签识别,得到所述目标页面中的多个代码标签;
对所述代码标签进行属性解析,确定所述目标页面的词法记号以及文本记号;
对所述目标页面进行样式解析,得到所述目标页面的内联样式信息和外部样式信息;
根据所述内联样式信息以及所述外部样式信息生成层叠样式文件。
在一些实施例中,所述根据所述词法记号以及所述文本记号构建文档对象模型树,包括:
创建文档对象,并将所述文档对象作为根节点;
创建与所述词法记号对应的多个元素节点;
根据所述文本记号创建文本节点;
获取所述元素节点的多个属性节点,并将多个所述属性节点作为所述元素节点的子节点;
根据所述根节点、多个所述元素节点、所述文本节点以及多个所述子节点构建文档对象模型树。
在一些实施例中,所述根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树,包括:
对所述层叠样式文件进行样式规则解析,得到所述层叠样式文件的样式规则,并将所述样式规则转换为规则对象;
根据所述规则对象创建规则树结构;
将所述文档对象模型树中的所有所述元素节点与所述规则树结构进行元素匹配;
当所述元素节点与所述规则树结构匹配,将与所述元素节点对应的样式规则添加至所述规则树结构,得到层叠样式规则树。
在一些实施例中,所述将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树,包括:
遍历所述文档对象模型树,并根据所述层叠样式规则树确定所述文档对象模型树中所有节点的模型树样式规则;
将所述文档对象模型树中的节点与所述模型树样式规则进行关联,生成渲染树。
在一些实施例中,所述对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面,包括:
获取所述渲染树的渲染根节点;
对于所述渲染树的每一个可见节点,对所述可见节点进行尺寸测量,得到所述可见节点的尺寸信息;
基于预设的盒子模型以及尺寸信息确定所述可见节点的内容框;
根据所述内容框确定所述可见节点的位置信息;
根据所述位置信息对所述可见节点进行重排,得到重排参数;
根据所述重排参数对所述目标页面进行重绘,得到所述目标页面的重绘页面。
为实现上述目的,本申请实施例的第二方面提出了一种页面元素查找装置,所述装置包括:
响应请求模块,用于响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
代码解析模块,用于对所述目标页面进行代码解析,生成渲染树;
节点计算模块,用于遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
信号生成模块,用于当确定遍历完所述渲染树的全部节点,生成加载完成信号;
请求接收模块,用于基于所述加载完成信号接收输入的元素查找请求;
元素查找模块,用于在所述重绘页面上确定与所述元素查找请求对应的目标元素。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的页面元素查找方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的页面元素查找方法。
本申请提出的页面元素查找方法、装置、电子设备及存储介质,首先,响应于页面内容请求,并获取与页面内容请求对应的目标页面,再对目标页面进行代码解析,生成渲染树,从而实现对目标页面的绘制,改善用户体验,之后,遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面,从而能够确定目标页面是否遍历完全部节点,进一步确定目标页面是否加载完成,当确定遍历完渲染树的全部节点,生成加载完成信号,便于后续对目标页面的相关元素的查找,最后,在重绘页面上确定与元素查找请求对应的目标元素,从而实现对目标元素的精准查找,并且能够保证在目标页面加载完成后对元素的查找,无需设置等待时间等待页面加载。
附图说明
图1是本申请实施例提供的页面元素查找方法的流程图;
图2是图1中的步骤S102的流程图;
图3是图2中的步骤S201的流程图;
图4是图2中的步骤S202的流程图;
图5是图2中的步骤S203的流程图;
图6是图2中的步骤S204的流程图;
图7是图1中的步骤S103的流程图;
图8是本申请实施例提供的页面元素查找装置的结构示意图;
图9是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
自然语言处理(Natural Language Processing,NLP):NLP用计算机来处理、理解以及运用人类语言(如中文、英文等),NLP属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学。自然语言处理包括语法分析、语义分析、篇章理解等。自然语言处理常用于机器翻译、手写体和印刷体字符识别、语音识别及文语转换、信息意图识别、信息抽取与过滤、文本分类与聚类、舆情分析和观点挖掘等技术领域,它涉及与语言处理相关的数据挖掘、机器学习、知识获取、知识工程、人工智能研究和与语言计算相关的语言学研究等。
用户界面(User Interface,UI):用户界面是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。
基于此,本申请实施例提供了一种页面元素查找方法和装置、电子设备及存储介质,无需设置等待时间,能够在页面加载完成之后,自动进行元素查找。
本申请实施例提供的页面元素查找方法和装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的页面元素查找方法。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、线上会客系统的模块管理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的页面元素查找方法,涉及数据处理技术领域。本申请实施例提供的页面元素查找方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现页面元素查找方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
目前,随着互联网的高速发展,web网络已经成为世界上最大的信息来源。web网络的发展给人类生活带来了巨大的方便,人们可以跨越时间和空间界限来共享大量信息。整个web网络是由无数的网页页面构成的。页面的海量性、多样性、动态性和半结构化等特性增加了对其内容进行自动处理的难度。如何有效获取这些web页面中的内容为我们所用仍然是大家面临的共同问题。例如,在做用户界面(User Interface,UI)自动化的时候,常常遇到同一个用例,有时跑能成功,有时跑失败的情况。大多数情况是页面加载受网络、设备配置等因素的影响,导致页面加载完成所需的时间不一样。当页面加载完成后,去执行UI自动化中的找元素步骤,此时,能够很好找到元素;当页面还未加载完成,就执行UI自动化中的找元素步骤时,就会报找不到元素的错误。
为了解决这种问题,相关技术会在上一个UI自动化步骤操作完后,在封装找元素的方法里设置一个最大等待时间,当超过这个时间后,就不再等待。这些方案或多或少能解决部分问题,但并不能完全解决。由于无法知道页面什么时候加载完成,因此只能根据经验去等待一个时间,再去执行一下步找元素操作。等待时间设置小了,用例重复执行的成功率会降低,等待时间设置大了,总的执行时间变长,效率降低。因此,如何精准确定查找元素的时机变得尤为重要。
为了解决上述问题,本实施例提供了页面元素查找方法、装置、电子设备及存储介质,首先,响应于页面内容请求,并获取与页面内容请求对应的目标页面,再对目标页面进行代码解析,生成渲染树,从而实现对目标页面的绘制,改善用户体验,之后,遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面,从而能够确定目标页面是否遍历完全部节点,进一步确定目标页面是否加载完成,当确定遍历完渲染树的全部节点,生成加载完成信号,便于后续对目标页面的相关元素的查找,最后,在重绘页面上确定与元素查找请求对应的目标元素,从而实现对目标元素的精准查找,并且能够保证在目标页面加载完成后对元素的查找,无需设置等待时间等待页面加载。
下面结合附图进行具体说明。
图1是本申请实施例提供的页面元素查找方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤S101至步骤S106。
步骤S101,响应于页面内容请求,获取与页面内容请求对应的目标页面;
在一些实施例的步骤S101中,响应于页面内容请求,获取与页面内容请求对应的目标页面,其中,目标页面包括但不限于包括保险知识页面、理财学习页面、收益风险页面等等,本实施例不做具体限制。
步骤S102,对目标页面进行代码解析,生成渲染树;
步骤S103,遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面;
步骤S104,当确定遍历完渲染树的全部节点,生成加载完成信号;
步骤S105,基于加载完成信号接收输入的元素查找请求;
步骤S106,在重绘页面上确定与元素查找请求对应的目标元素。
在一些实施例的步骤S101至步骤S106中,首先,响应于页面内容请求,获取与页面内容请求对应的目标页面,之后,对目标页面的源代码进行代码解析,得到目标页面的具体元素信息,生成渲染树,从而得到目标页面中的元素的样式规则、布局和可见性,再遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面,实现了对目标页面的样式管理、布局和渲染优化,同时促进了网页的可维护性、可扩展性,当确定遍历完渲染树的全部节点,生成加载完成信号,以表征遍历完渲染树的最后一个节点,后续进行元素查找无需设置等待时间,只需监听这个加载完成信号即可,最后,基于加载完成信息接收输入的元素查找请求,当监听到加载完成信号,可以直接根据元素查找请求对元素进行查找,在重绘页面上确定与元素查找请求对应的目标元素,实现对目标元素的准确查找,提高元素查找效率,无需设置等待时间等待页面加载。
需要说明的是,用户界面的自动化侧在每次进到一个新的页面时监听加载完成信号。只有当监听到加载完成信号后才开始执行自动化的找元素的指令,其中,可以采用进程间通信的方式完成这种信息收发,即浏览器引擎进程和UI自动化脚本进程进行通信,本实施例不做具体限制。
请参阅图2,在一些实施例中,步骤S102还可以包括但不限于包括步骤S201至步骤S204:
步骤S201,基于预设的文件读取函数对目标页面进行代码解析,得到目标页面的词法记号、文本记号以及层叠样式文件;
需要说明的是,词法记号用于表征目标页面的源代码中的符号切分,文本记号用于表征目标页面中的文本信息。
在一些实施例的步骤S201中,基于预设的文件读取函数对目标页面进行代码解析,得到目标页面的词法记号、文本记号以及层叠样式文件,从而能够得到目标页面的各个组成部分,便于后续对渲染树的构建,从而考虑了目标页面中元素的样式规则、布局和可见性等因素,提高目标页面的可维护性和扩展性,使得样式的修改更加灵活和容易。
需要说明的是,词法记号用于表征目标页面的源代码中的符号切分,并且用于标识源代码中最小、不可再分割的单元或者基本元素,是编译器或者解释器在进行词法分析阶段生成的一类数据结构。
可以理解的是,目标页面的源代码通常由各种符号组成,例如,关键字、标识符、运算符、字符串、分隔符等等,词法记号就是将这些源代码中的符号切分并进行分类,每个词法记号代表了一类具有相似语义的符号。词法记号包括但不限于包括类型信息、值信息以及位置信息,其中,类型信息用于标识该词法记号的类型,例如,关键字、标识符、运算符等等;值信息用于记录该词法记号对应的具体符号或者字符串值;位置信息用于表示该记号在源代码中的位置,例如,行号和列号等等。
步骤S202,根据词法记号以及文本记号构建文档对象模型树;
在一些实施例的步骤S202中,根据词法记号以及文本记号构建文档对象模型树,从而能够实现对目标页面的结构化展示,实现对页面内容的灵活处理,实现对目标页面中所有元素节点的遍历。
步骤S203,根据文档对象模型树以及层叠样式文件构建层叠样式规则树;
在一些实施例的步骤S203中,根据文档对象模型树以及层叠样式文件构建层叠样式规则树,将文档对象模型树与层叠样式规则树中的元素关联起来,实现对目标页面样式的有效管理和维护,便于后续对目标页面样式的修改。
步骤S204,将文档对象模型树以及层叠样式规则树进行合并,得到渲染树。
在一些实施例的步骤S204中,将文档对象模型树以及层叠样式规则树进行合并,得到渲染树,从而充分考虑元素的样式规则、布局和可见性等因素。
请参阅图3,在一些实施例中,步骤S201还可以包括但不限于包括步骤S301至步骤S304:
步骤S301,基于文件读取函数对目标页面进行标签识别,得到目标页面中的多个代码标签;
在一些实施例的步骤S301中,基于文件读取函数对目标页面进行标签识别,得到目标页面中的多个代码标签,从而便于后续确定目标页面中的具体内容,便于后续通过代码标签确定目标页面的文档结构。
需要说明的是,本实施例中除了基于读取函数对目标页面进行标签识别之外,还可以通过HTTP请求对目标页面进行标签识别。
可以理解的是,代码标签包括目标页面文本代码标签、运算符标签、分隔符标签等等,以此来表征目标页面中的文本区域、运算区域和分隔特征等等。
步骤S302,对代码标签进行属性解析,确定目标页面的词法记号以及文本记号;
在一些实施例的步骤S302中,在对代码标签进行属性解析的过程中,可以通过词法分析器对代码标签进行扫描,并根据预定义的规则和正则表达式模式,将源代码分割成一系列词法记号,从而能够确定目标页面的词法记号,并且通过分析代码标签的属性,确定目标页面的文本记号,从而能够得到目标页面的多种组成部分,从而考虑了目标页面的样式规则、布局等等特征,促进了目标页面的可维护性和可扩展性。
需要说明的是,在对代码标签进行属性解析的过程中,还可以通过解析器逐个解析目标页面中的属性名和属性值,并将其关联到与代码标签对应的元素。
步骤S303,对目标页面进行样式解析,得到目标页面的内联样式信息和外部样式信息;
在一些实施例的步骤S303中,在对目标页面进行样式解析的过程中,会加载目标页面的源代码中引用的外部CSS文件,并解析代码标签内的CSS,从而得到目标页面的内联样式信息和外部样式信息,实现对目标页面的全部CSS的解析。
步骤S304,根据内联样式信息以及外部样式信息生成层叠样式文件。
在一些实施例的步骤S304中,根据内联样式信息以及外部样式信息生成层叠样式文件,其中,对于外部样式信息,本实施例会下载该外部样式信息的CSS文件,以实现对样式信息的全部解析,以实现对目标页面的动态修改和交互效果。
请参阅图4,在一些实施例中,步骤S202还可以包括但不限于包括步骤S401至步骤S405:
步骤S401,创建文档对象,并将文档对象作为根节点;
步骤S402,创建与词法记号对应的多个元素节点;
步骤S403,根据文本记号创建文本节点;
步骤S404,获取元素节点的多个属性节点,并将多个属性节点作为元素节点的子节点;
步骤S405,根据根节点、多个元素节点、文本节点以及多个子节点构建文档对象模型树。
在一些实施例的步骤S401至步骤S405中,在构建文档对象模型树的过程中,首先,创建一个空的文档对象,并将该文档对象作为树的根节点,之后创建与词法记号对应的多个元素节点,例如,字符节点、标识符节点等等,之后,根据文本记号创建文本节点,再获取元素节点的多个属性节点,例如,颜色节点、链接节点、图像节点等等,并将多个属性节点作为元素节点的子节点,最后,将多个元素节点以及文本节点与根节点连接,并将多个子节点挂到相应的元素节点上,生成文档对象模型树,从而能够实现对目标页面的结构化展示,实现对页面内容的灵活处理,实现对目标页面中所有元素节点的遍历。
需要说明的是,在创建元素节点的过程中,会将与词法记号对应的属性设置为元素节点的属性,并且将该元素节点作为父节点,将后续解析的多个属性节点作为该父节点的子节点,除此之外,在创建文档对象模型树的过程中,遇到文本节点可以直接将其添加至文档对象模型树,当解析完所有的代码标签之后,文档对象模型树就构建完成了。
值得注意的是,在目标页面的源代码中可以添加开始标签以及结束标签,当解析到开始标签,创建一个对应的元素节点,并将其添加至文档对象模型树中,开启后续的元素节点、文本节点以及属性节点的创建过程,当解析到结束标签,则将当前元素节点从正在处理的上下文中移除,从而实现对文档对象模型树的构建。
可以理解的是,文档对象模型树的作用是将目标页面的源代码以树状结构的方式表示出来,它提高了访问和操作目标页面的标准接口,使得使用者能够操作和修改目标页面的内容、样式和结构,实现对目标页面的操作和交互。
请参阅图5,在一些实施例中,步骤S203还可以包括但不限于包括步骤S501至步骤S504:
步骤S501,对层叠样式文件进行样式规则解析,得到层叠样式文件的样式规则,并将样式规则转换为规则对象;
步骤S502,根据规则对象创建规则树结构;
步骤S503,将文档对象模型树中的所有元素节点与规则树结构进行元素匹配;
步骤S504,当元素节点与规则树结构匹配,将与元素节点对应的样式规则添加至规则树结构,得到层叠样式规则树。
在一些实施例的步骤S501至步骤S504中,在构建层叠样式规则树的过程中,首先,对层叠样式文件进行样式规则解析,从而能够了解目标页面的结构和内容,得到层叠样式文件的样式规则,从而能够描述层叠样式文件中特定元素的规则集合,其中,每个样式规则包括一个选择器和一组相关的样式属性,例如,颜色属性、尺寸属性等等,并将样式规则转换为规则对象,实现对层叠样式文件的解析,之后,遍历文档对象模型树中的每一个元素节点,并将文档对象模型树中的所有元素节点与规则树结构进行元素匹配,从而使得后续构建的层叠样式规则树与文档对象模型树相对应,当元素节点与规则树结构匹配,将与元素节点对应的样式规则添加至规则树结构,从而得到层叠样式规则树,实现对目标页面中样式规则的表示,将文档对象模型树与层叠样式规则树中的元素关联起来,实现对目标页面样式的有效管理和维护,便于后续对目标页面样式的修改。
需要说明的是,在将文档对象模型树中的所有元素节点与规则树结构进行元素匹配的过程中,需要遍历文档对象模型树中的每个元素,并将元素与规则树结构中的样式规则进行皮培培,如果匹配成功,则将样式规则应用于元素;如果匹配不成功,则不作任何操作,继续匹配其他元素节点,最后,将匹配成功的样式规则以树形结构组织起来,形成完成的层叠样式规则树,从而实现对目标页面的动态修改和交互。
请参阅图6,在一些实施例中,步骤S204还可以包括但不限于包括步骤S601至步骤S602:
步骤S601,遍历文档对象模型树,并根据层叠样式规则树确定文档对象模型树中所有节点的模型树样式规则;
步骤S602,将文档对象模型树中的节点与模型树样式规则进行关联,生成渲染树。
在一些实施例的步骤S601至步骤S602中,在得到渲染树的过程中,首先从根节点开始遍历文档对象模型树,并根据层叠样式规则树确定文档对象模型树中所有节点的模型树样式规则,从而能够考虑层叠顺序、继承关系等多种关系样式,之后,将文档对象模型树中的节点与模型树样式规则进行关联,生成渲染树,从而充分考虑元素的样式规则、布局和可见性等因素。
需要说明的是,在生成渲染树的过中,还需要对目标页面的元素进行可见性分析,确定目标页面中可见的节点和隐藏的节点,只有在目标页面可见的元素会被添加到渲染树中,隐藏的元素会被忽略,不做关联处理。
请参阅图7,在一些实施例中,步骤S103还可以包括但不限于包括步骤S701至步骤S706:
步骤S701,获取渲染树的渲染根节点;
步骤S702,对于渲染树的每一个可见节点,对可见节点进行尺寸测量,得到可见节点的尺寸信息;
步骤S703,基于预设的盒子模型以及尺寸信息确定可见节点的内容框;
步骤S704,根据内容框确定可见节点的位置信息;
步骤S705,根据位置信息对可见节点进行重排,得到重排参数;
步骤S706,根据重排参数对目标页面进行重绘,得到目标页面的重绘页面。
在一些实施例的步骤S701至步骤S706中,在计算得到重绘页面的过程中,首先,获取渲染树的渲染根节点,对于渲染树的每一个可见节点,对可见节点进行尺寸测量,得到可见节点的尺寸信息,之后,根据预设的盒子模型以及尺寸信息确定可见节点的内容框,再根据内容框确定可见节点的位置信息,从而能够得到每个元素的实际位置和大小,根据位置信息对可见节点进行重排操作,得到重排参数,从而准确确定可见节点的绝对定位和相对定位,最后,根据重排参数对目标页面进行重绘操作,得到目标页面的重绘页面,从而实现对目标页面中所有可见节点的整体布局,确保页面的各个元素正确地排列、定位和呈现,无需使用者重复执行用例,提高对元素查找的效率。
需要说明的是,在对可见节点进行尺寸测量的过程中,会根据其样式、内容和父节点的约束条件,计算其几何尺寸,其中,几何尺寸包括宽度、高度、边距和填充等等,便于后续进行重排操作,可见节点的位置信息包括但不限于包括可见节点的边距参数、横坐标参数、纵坐标参数等等,其中,重排参数包括但不限于包括可见节点的节点类型、样式、边距、尺寸、定位的上下文、底部距离等等。
值得注意的是,在根据位置信息对可见节点进行重排的过程中,会计算每个可见节点的几何位置和大小,并且对于有子节点的可见节点,递归地执行重排过程,确定子节点在父节点的约束条件下正确布局,以完成对所有可见节点的布局计算,得到每个可见节点的最终位置和大小。
请参阅图8,本申请实施例还提供一种页面元素查找装置,装置包括:
响应请求模块801,用于响应于页面内容请求,获取与页面内容请求对应的目标页面;
代码解析模块802,用于对目标页面进行代码解析,生成渲染树;
节点计算模块803,用于遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面;
信号生成模块804,用于当确定遍历完渲染树的全部节点,生成加载完成信号;
请求接收模块805,用于基于加载完成信号接收输入的元素查找请求;
元素查找模块806,用于在重绘页面上确定与元素查找请求对应的目标元素。
该页面元素查找装置的具体实施方式与上述页面元素查找方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述页面元素查找方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器901,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application SpecificIntegrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器902,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的页面元素查找方法;
输入/输出接口903,用于实现信息输入及输出;
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述页面元素查找方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的页面元素查找方法、装置、电子设备及存储介质,首先,响应于页面内容请求,并获取与页面内容请求对应的目标页面,再对目标页面进行代码解析,生成渲染树,从而实现对目标页面的绘制,改善用户体验,之后,遍历渲染树的全部节点,以对渲染树的所有节点进行计算,得到目标页面的重绘页面,从而能够确定目标页面是否遍历完全部节点,进一步确定目标页面是否加载完成,当确定遍历完渲染树的全部节点,生成加载完成信号,便于后续对目标页面的相关元素的查找,最后,在重绘页面上确定与元素查找请求对应的目标元素,从而实现对目标元素的精准查找,并且能够保证在目标页面加载完成后对元素的查找,无需设置等待时间等待页面加载。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1-7中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

Claims (10)

1.一种页面元素查找方法,其特征在于,所述方法包括:
响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
对所述目标页面进行代码解析,生成渲染树;
遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
当确定遍历完所述渲染树的全部节点,生成加载完成信号;
基于所述加载完成信号接收输入的元素查找请求;
在所述重绘页面上确定与所述元素查找请求对应的目标元素。
2.根据权利要求1所述的页面元素查找方法,其特征在于,所述对所述目标页面进行代码解析,生成渲染树,包括:
基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,其中,所述词法记号用于表征所述目标页面的源代码中的符号切分,所述文本记号用于表征所述目标页面中的文本信息;
根据所述词法记号以及所述文本记号构建文档对象模型树;
根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树;
将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树。
3.根据权利要求2所述的页面元素查找方法,其特征在于,所述基于预设的文件读取函数对所述目标页面进行代码解析,得到所述目标页面的词法记号、文本记号以及层叠样式文件,包括:
基于所述文件读取函数对所述目标页面进行标签识别,得到所述目标页面中的多个代码标签;
对所述代码标签进行属性解析,确定所述目标页面的词法记号以及文本记号;
对所述目标页面进行样式解析,得到所述目标页面的内联样式信息和外部样式信息;
根据所述内联样式信息以及所述外部样式信息生成层叠样式文件。
4.根据权利要求2所述的页面元素查找方法,其特征在于,所述根据所述词法记号以及所述文本记号构建文档对象模型树,包括:
创建文档对象,并将所述文档对象作为根节点;
创建与所述词法记号对应的多个元素节点;
根据所述文本记号创建文本节点;
获取所述元素节点的多个属性节点,并将多个所述属性节点作为所述元素节点的子节点;
根据所述根节点、多个所述元素节点、所述文本节点以及多个所述子节点构建文档对象模型树。
5.根据权利要求4所述的页面元素查找方法,其特征在于,所述根据所述文档对象模型树以及所述层叠样式文件构建层叠样式规则树,包括:
对所述层叠样式文件进行样式规则解析,得到所述层叠样式文件的样式规则,并将所述样式规则转换为规则对象;
根据所述规则对象创建规则树结构;
将所述文档对象模型树中的所有所述元素节点与所述规则树结构进行元素匹配;
当所述元素节点与所述规则树结构匹配,将与所述元素节点对应的样式规则添加至所述规则树结构,得到层叠样式规则树。
6.根据权利要求2所述的页面元素查找方法,其特征在于,所述将所述文档对象模型树以及所述层叠样式规则树进行合并,得到渲染树,包括:
遍历所述文档对象模型树,并根据所述层叠样式规则树确定所述文档对象模型树中所有节点的模型树样式规则;
将所述文档对象模型树中的节点与所述模型树样式规则进行关联,生成渲染树。
7.根据权利要求1所述的页面元素查找方法,其特征在于,所述对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面,包括:
获取所述渲染树的渲染根节点;
对于所述渲染树的每一个可见节点,对所述可见节点进行尺寸测量,得到所述可见节点的尺寸信息;
基于预设的盒子模型以及尺寸信息确定所述可见节点的内容框;
根据所述内容框确定所述可见节点的位置信息;
根据所述位置信息对所述可见节点进行重排,得到重排参数;
根据所述重排参数对所述目标页面进行重绘,得到所述目标页面的重绘页面。
8.一种页面元素查找装置,其特征在于,所述装置包括:
响应请求模块,用于响应于页面内容请求,获取与所述页面内容请求对应的目标页面;
代码解析模块,用于对所述目标页面进行代码解析,生成渲染树;
节点计算模块,用于遍历所述渲染树的全部节点,以对所述渲染树的所有节点进行计算,得到所述目标页面的重绘页面;
信号生成模块,用于当确定遍历完所述渲染树的全部节点,生成加载完成信号;
请求接收模块,用于基于所述加载完成信号接收输入的元素查找请求;
元素查找模块,用于在所述重绘页面上确定与所述元素查找请求对应的目标元素。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的页面元素查找方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的页面元素查找方法。
CN202311362277.4A 2023-10-19 2023-10-19 页面元素查找方法、装置、电子设备及介质 Pending CN117608719A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311362277.4A CN117608719A (zh) 2023-10-19 2023-10-19 页面元素查找方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311362277.4A CN117608719A (zh) 2023-10-19 2023-10-19 页面元素查找方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN117608719A true CN117608719A (zh) 2024-02-27

Family

ID=89946885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311362277.4A Pending CN117608719A (zh) 2023-10-19 2023-10-19 页面元素查找方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN117608719A (zh)

Similar Documents

Publication Publication Date Title
JP4427500B2 (ja) 意味解析装置、意味解析方法および意味解析プログラム
CN110688307B (zh) JavaScript代码检测方法、装置、设备和存储介质
JP2018097846A (ja) Api学習
US20220414463A1 (en) Automated troubleshooter
CN104331438A (zh) 对小说网页内容选择性抽取方法和装置
CN111831384A (zh) 语言切换方法和装置、设备及存储介质
CA2781391A1 (en) Identifying equivalent links on a page
CN114398138A (zh) 界面生成方法、装置、计算机设备和存储介质
CN114117242A (zh) 数据查询方法和装置、计算机设备、存储介质
CN113704420A (zh) 文本中的角色识别方法、装置、电子设备及存储介质
CN116701604A (zh) 问答语料库的构建方法和装置、问答方法、设备及介质
CN109948015B (zh) 一种元搜索列表结果抽取方法及系统
CN116010147A (zh) 异常处理表的生成方法、系统、电子设备及存储介质
CN113806667B (zh) 一种支持网页分类的方法和系统
CN115292180A (zh) 代码分析方法、代码分析装置、电子设备及存储介质
CN117608719A (zh) 页面元素查找方法、装置、电子设备及介质
CN114625658A (zh) App稳定性测试方法、装置、设备和计算机可读存储介质
CN112667874A (zh) 网页的数据抽取方法、装置、电子设备及存储介质
CN114596070A (zh) 一种基于知识图谱的产品优化设计平台构建方法
CN114637505A (zh) 一种页面内容提取方法和装置
CN112328246A (zh) 页面组件生成方法、装置、计算机设备及存储介质
US20240126978A1 (en) Determining attributes for elements of displayable content and adding them to an accessibility tree
CN111625749B (zh) 参会公司网站详情页信息提取方法、装置、设备及介质
CN117435106A (zh) 一种页面生成方法、装置、电子设备及存储介质
CN110308931B (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