1.本技术涉及数据处理技术领域,具体涉及一种网页信息处理方法及装置、 一种电子设备以及一种计算机可读存储介质。
背景技术:2.在html(超文本标记语言,hypertext markup language,简称html) 中dom(文档对象模型,document object model,简称dom)是web前端 里最基础、最常用的模型。例如,一个web页面其实就是一个html文件, 经过浏览器的解析,最终呈现在用户面前。
3.随着web应用的广泛使用,在很多技术场景,需要分析和检测web页面 的dom结构。在处理这类场景需求时,经常会面临页面dom无法一次完全加 载的问题,在技术实现上,web页面的dom结构是随着页面操作而动态改变 的,如何根据业务分析、检测的需要灵活地注入页面操作,从而获取正确的页 面dom结构是解决这类问题的一个痛点。
技术实现要素:4.本技术的目的是提供一种网页信息处理方法及装置、一种电子设备以及一 种计算机可读存储介质。
5.本技术第一方面提供一种网页信息处理方法,包括:
6.利用base基类获取用户自定义的网页页面操作逻辑;
7.编译所述页面操作逻辑,生成中间目标文件;
8.上传所述中间目标文件到文档对象模型dom分析程序端并动态执行所述 页面操作逻辑,以得到所述用户自定义页面操作对应的dom结构。
9.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述利 用base基类获取用户自定义的网页页面操作逻辑,包括:
10.获取自定义base基类,所述base基类包括抽象方法,所述抽象方法包含 参数webdriver,所述webdriver参数可用于传入实现自定义操作的webdriver实例;
11.继承所述base基类得到用户自定义网页页面操作逻辑对应的页面操作代 码。
12.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述继 承所述base基类得到自定义网页页面操作逻辑对应的页面操作代码,包括:
13.继承所述base基类得到用户自定义网页页面操作逻辑对应的operator类;
14.其中,所述operator类包括所述页面操作逻辑对应的页面操作代码。
15.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述编 译所述页面操作逻辑,生成中间目标文件,包括:
16.接收编译命令,根据所述编译命令获取预设编译工具;
17.利用所述预设编译工具编译所述自定义网页页面操作逻辑对应的页面操作 代码,生成中间目标文件。
18.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述预 设编译
工具为javac工具。
19.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述中 间目标文件为.class目标文件。
20.在一种可能的实现方式中,在本技术的上述网页信息处理方法中,所述上 传所述中间目标文件到文档对象模型dom分析程序端,包括:
21.上传所述.class目标文件到dom分析程序端,以通过反射机制加载所 述.class目标文件,动态执行用户注入的页面操作代码,执行过程中得到用户 自定义页面操作对应的dom结构。
22.本技术第二方面提供一种网页信息处理装置,包括:
23.获取模块,用于利用base基类获取用户自定义的网页页面操作逻辑;
24.编译模块,用于编译所述页面操作逻辑,生成中间目标文件;
25.分析模块,用于上传所述中间目标文件到文档对象模型dom分析程序端 并动态执行所述页面操作逻辑,以得到所述用户自定义页面操作对应的dom 结构。
26.在一种可能的实现方式中,在上述网页信息处理装置中,所述获取模块, 具体用于:
27.获取自定义base基类,所述base基类包括抽象方法,所述抽象方法包含 参数webdriver,所述webdriver参数可用于传入实现自定义操作的 webdriver实例;
28.继承所述base基类得到用户自定义网页页面操作逻辑对应的页面操作代 码。
29.在一种可能的实现方式中,在上述网页信息处理装置中,所述获取模块, 具体用于:
30.继承所述base基类得到用户自定义网页页面操作逻辑对应的operator类;
31.其中,所述operator类包括所述页面操作逻辑对应的页面操作代码。
32.在一种可能的实现方式中,在上述网页信息处理装置中,所述编译模块, 具体用于:
33.接收编译命令,根据所述编译命令获取预设编译工具;
34.利用所述预设编译工具编译所述自定义网页页面操作逻辑对应的页面操作 代码,生成中间目标文件。
35.在一种可能的实现方式中,在上述网页信息处理装置中,所述预设编译工 具为javac工具。
36.在一种可能的实现方式中,在上述网页信息处理装置中,所述中间目标文 件为.class目标文件。
37.在一种可能的实现方式中,在上述网页信息处理装置中,所述分析模块, 具体用于:
38.上传所述.class目标文件到dom分析程序端,以通过反射机制加载所 述.class目标文件,动态执行用户注入的页面操作代码,执行过程中得到用户 自定义页面操作对应的dom结构。
39.本技术第三方面提供一种电子设备,包括:存储器、处理器及存储在所述 存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机 程序时执行以实现本技术第一方面所述的方法。
40.本技术第四方面提供一种计算机可读介质,其上存储有计算机可读指令, 所述计算机可读指令可被处理器执行以实现本技术第一方面所述的方法。
41.相较于现有技术,本技术提供的网页信息处理方法、装置、电子设备及介 质,利用base基类获取用户自定义的网页页面操作逻辑;编译所述页面操作 逻辑,生成中间目标文件;上传所述中间目标文件到文档对象模型dom分析 程序端,以在动态执行所述页面操作逻辑的过程中得到用户自定义页面操作对 应的dom结构。相较于现有技术,本技术可以根据业务分析、检测的需要灵 活地注入页面操作,从而获取正确的页面dom结构。
附图说明
42.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领 域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并 不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的 部件。在附图中:
43.图1示出了本技术提供的一种网页信息处理方法的流程图;
44.图2示出了本技术的提供的一种网页信息处理装置的示意图;
45.图3示出了本技术提供的一种电子设备的示意图;
46.图4示出了本技术提供的一种计算机可读存储介质的示意图。
具体实施方式
47.下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示 了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻 地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
48.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当 为本技术所属领域技术人员所理解的通常意义。
49.另外,术语“第一”和“第二”等是用于区别不同对象,而不是用于描述 特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖 不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设 备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元, 或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
50.本技术实施例提供一种网页信息处理方法及装置、一种电子设备以及计算 机可读介质,下面结合附图进行说明。
51.请参考图1,其示出了本技术的一些实施方式所提供的一种网页信息处理 方法的流程图,如图所示,该网页信息处理方法,可以包括以下步骤:
52.s101、利用base基类获取用户自定义的网页页面操作逻辑;
53.s102、编译所述页面操作逻辑,生成中间目标文件;
54.s103、上传所述中间目标文件到文档对象模型dom分析程序端并动态执 行所述页面操作逻辑,以得到所述用户自定义页面操作对应的dom结构。
55.具体的,步骤s101可以实现如下:
56.获取自定义base基类,在所述base基类中有一个抽象方法,该抽象方法 包含参数
webdriver,该webdriver参数可用于传入实现自定义操作的 webdriver实例;
57.继承所述base基类得到用户自定义网页页面操作逻辑对应的页面操作代 码。
58.进一步的,上述继承所述base基类得到用户自定义网页页面操作逻辑对 应的页面操作代码的步骤包括:继承所述base基类得到用户自定义网页页面 操作逻辑对应的operator类;其中,所述operator类包括所述页面操作逻辑 对应的页面操作代码。
59.具体的,继承所述base基类以编写得到用户自定义网页页面操作逻辑 operator类,从而实现利用base基类抽象方法来获取页面操作逻辑对应的页 面操作代码。
60.具体的,在java里面使用abstract修饰的方法,称之为抽象方法,使用 abstract修饰的类是抽象类,抽象类不能创建该类的实例,抽象方法没有具体 的实现,只有申明,在子类里面,必须重写该抽象的方法。
61.base基类定义了后续用户注入自定义web页面操作的统一规范接口,用 户仅需要继承base基类,复写(override)抽象方法public abstract voidaction(webdriver webdriver),通过操作webdriver对象就可以实现用户自定义 web页面自动化操作的功能。
62.operator类复写(override)base基类方法action(),其中参数webdriver 用于传入实现自定义操作的webdriver实例。
63.selenium是一个用于web应用程序测试的工具,selenium测试直接运行在 浏览器中,就像真正的用户在操作一样;package是当前类的位置,import表 示要引入指定位置的类。
64.operator类实现逻辑:继承自base基类的operator类(例如useroperator 类)中action()方法中的webdriver参数是selenium操作浏览器自动化测试的驱 动器句柄对象,通过调用webdriver接口方法可以灵活实现用户自定义操作的 页面自动化测试。
65.具体可以在派生类中实现base基类抽象方法action(webdriver),页面操 作逻辑通过selenium框架进行设置,页面操作代码为用户注入java代码,例 如,在用户名输入框中输入testuser,密码输入框中输入testpassword,最后点 击login登录按钮实现新的dom结构加载。
66.用户注入的自动化操作逻辑说明:
67.(1)by.id(“页面元素定位标识”)用于根据web页面html元素id获取对应 的by对象类。
68.(2)webdriver.findelement()用于根据传入的by对象获取页面对应的 webelement对象用于下一步操作。
69.(3)webelement.sendkeys用于模拟键盘输入,如图4中输入的字符串: testuser,testpassword。
70.(4)webelement.click()用于模拟鼠标点击操作。
71.具体的,步骤s102可以实现为:
72.接收编译命令,根据所述编译命令获取预设编译工具;
73.利用所述预设编译工具编译所述自定义网页页面操作逻辑对应的页面操作 代码,生成中间目标文件。
74.其中,所述预设编译工具可以为javac工具,所述中间目标文件为.class目 标文件。
75.具体的,步骤s102可以实现为:利用javac工具编译所述自定义网页页面 操作逻辑operator类,生成.class目标文件。
76.接收到编译命令:javac useroperator.java,获取javac工具;
77.通过javac工具编译operator类,即编译用户编写的页面操作代码;
78.编译后会生成中间目标文件useroperator.class。
79.具体的,步骤s103可以实现为:上传所述.class目标文件到dom分析程 序端,以通过反射机制加载所述.class目标文件,动态执行用户注入的页面操 作代码,执行过程中得到用户自定义页面操作对应的dom结构。
80.具体的,步骤s103中动态执行用户自定义操作的处理过程如下:
81.(1)动态执行用户注入的自动化操作通过java反射机制原理实现。
82.(2)首先申明一个class《?》泛型class对象。
83.(3)通过class对象的forname方法动态进行类加载,实现将.class文件加 载到内存中。
84.(4)通过class对象的newinstance()创建一个用户operator操作类,并向 上转型使用object对象保存(tmpinst对象),用于后续的操作使用。
85.(5)执行operator的action方法(将之前暂存的tmpinst对象向下转型为具 体的operator对象),通过webdriver驱动浏览器自动执行用户注入的页面自 动化操作动作。
86.(6)用户自定义操作执行后,页面dom结构已按照用户的需要完成加载, 通过使用webdriver.getpagesource()获取页面完整的dom清单。
87.可见,在分析页面dom结构的场景需求中,本技术可以根据业务分析、 检测的需要灵活地注入页面操作,从而获取正确的页面dom结构,本技术创 造性地使用java编译后的字节码作为操作脚本注入,可以非常容易的注入复 杂的页面操作逻辑,用户配置技术门槛低,可以提高页面dom分析检测的效 率。
88.本技术实施例提供的网页信息处理方法,利用base基类获取用户自定义 的网页页面操作逻辑;编译所述页面操作逻辑,生成中间目标文件;上传所述 中间目标文件到文档对象模型dom分析程序端,以在动态执行所述页面操作 逻辑的过程中得到用户自定义页面操作对应的dom结构。相较于现有技术, 本技术可以根据业务分析、检测的需要灵活地注入页面操作,从而获取正确的 页面dom结构。
89.在上述的实施例中,提供了一种网页信息处理方法,与之相对应的,本申 请还提供一种网页信息处理装置。本技术实施例提供的网页信息处理装置可以 实施上述网页信息处理方法,该网页信息处理装置可以通过软件、硬件或软硬 结合的方式来实现。例如,该网页信息处理装置可以包括集成的或分开的功能 模块或单元来执行上述各方法中的对应步骤。请参考图2,其示出了本技术的 一些实施方式所提供的一种网页信息处理装置的示意图。由于装置实施例基本 相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说 明即可。下述描述的装置实施例仅仅是示意性的。
90.如图2所示,所述网页信息处理装置10,可以包括:
91.获取模块101,用于利用base基类获取用户自定义的网页页面操作逻辑;
92.编译模块102,用于编译所述页面操作逻辑,生成中间目标文件;
93.分析模块103,用于上传所述中间目标文件到文档对象模型dom分析程 序端并动
态执行所述页面操作逻辑,以得到所述用户自定义页面操作对应的 dom结构。
94.在一种可能的实现方式中,在上述网页信息处理装置中,所述获取模块 101,具体用于:
95.获取自定义base基类,所述base基类包括抽象方法,所述抽象方法包含 参数webdriver,所述webdriver参数可用于传入实现自定义操作的 webdriver实例;
96.继承所述base基类得到用户自定义网页页面操作逻辑对应的页面操作代 码。
97.在一种可能的实现方式中,在上述网页信息处理装置中,所述获取模块 101,具体用于:
98.继承所述base基类得到用户自定义网页页面操作逻辑对应的operator类;
99.其中,所述operator类包括所述页面操作逻辑对应的页面操作代码。
100.在一种可能的实现方式中,在上述网页信息处理装置中,所述编译模块 102,具体用于:
101.接收编译命令,根据所述编译命令获取预设编译工具;
102.利用所述预设编译工具编译所述自定义网页页面操作逻辑对应的页面操作 代码,生成中间目标文件。
103.在一种可能的实现方式中,在上述网页信息处理装置中,所述预设编译工 具为javac工具。
104.在一种可能的实现方式中,在上述网页信息处理装置中,所述中间目标文 件为.class目标文件。
105.在一种可能的实现方式中,在上述网页信息处理装置中,所述分析模块 103,具体用于:
106.上传所述.class目标文件到dom分析程序端,以通过反射机制加载所 述.class目标文件,动态执行用户注入的页面操作代码,执行过程中得到用户 自定义页面操作对应的dom结构。
107.本技术实施例提供的网页信息处理装置10,与本技术前述实施例提供的 网页信息处理方法出于相同的发明构思,具有相同的有益效果。
108.本技术实施方式还提供一种与前述实施方式所提供的网页信息处理方法对 应的电子设备,所述电子设备可以是手机、笔记本电脑、平板电脑、台式机电 脑等,以执行上述网页信息处理方法。
109.请参考图3,其示出了本技术的一些实施方式所提供的一种电子设备的示 意图。如图3所示,所述电子设备20包括:处理器200,存储器201,总线 202和通信接口203,所述处理器200、通信接口203和存储器201通过总线 202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序, 所述处理器200运行所述计算机程序时执行本技术前述任一实施方式所提供的 网页信息处理方法。
110.其中,存储器201可能包含高速随机存取存储器(ram:random accessmemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少 一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该 系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本 地网、城域网等。
111.总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为 地址总线、数
据总线、控制总线等。其中,存储器201用于存储程序,所述处 理器200在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方 式揭示的所述网页信息处理方法可以应用于处理器200中,或者由处理器200 实现。
112.处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程 中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件 形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器 (central processing unit,简称cpu)、网络处理器(network processor,简称np) 等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵 列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件 组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。 通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合 本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成, 或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机 存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、 寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200 读取存储器201中的信息,结合其硬件完成上述方法的步骤。
113.本技术实施例提供的电子设备与本技术实施例提供的网页信息处理方法出 于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
114.本技术实施方式还提供一种与前述实施方式所提供的网页信息处理方法对 应的计算机可读存储介质,请参考图4,其示出的计算机可读存储介质为光盘 30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行 时,会执行前述任意实施方式所提供的网页信息处理方法。
115.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相 变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦 除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在 此不再一一赘述。
116.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的网 页信息处理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行 或实现的方法相同的有益效果。
117.需要说明的是,附图中的流程图和框图显示了根据本技术的多个实施例的 系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上, 流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述 模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执 行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以 以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并 行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要 注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的 组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可 以用专用硬件与计算机指令的组合来实现。
118.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其 限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术 人员应当理解:其
依然可以对前述各实施例所记载的技术方案进行修改,或者 对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相 应技术方案的本质脱离本技术各实施例技术方案的范围,其均应涵盖在本技术 的权利要求和说明书的范围当中。