首页 > 编程语言 >Python神器!WEB自动化测试集成工具 DrissionPage

Python神器!WEB自动化测试集成工具 DrissionPage

时间:2023-12-10 12:32:20浏览次数:43  
标签:WEB 功能 浏览器 Python class DrissionPage JS 数据包 page

Python神器!WEB自动化测试集成工具 DrissionPage

 一、前言
用 requests 做数据采集面对要登录的网站时,要分析数据包、JS 源码,构造复杂的请求,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高。若数据是由 JS 计算生成的,还须重现计算过程,体验不好,开发效率不高。使用浏览器,可以很大程度上绕过这些坑,但浏览器运行效率不高。

因此,这个库设计初衷,是将它们合而为一,能够在不同须要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。

除了合并两者,本库还以网页为单位封装了常用功能,提供非常简便的操作和语句,在用于网页自动化操作时,减少考虑细节,专注功能实现,使用更方便。一切从简,尽量提供简单直接的使用方法,对新手更友好。

二、特性
本库采用全自研的内核,内置了 N 多实用功能,对常用功能作了整合和优化,对比 selenium,有以下优点:

• 无 webdriver 特征,不会被网站识别
• 无需为不同版本的浏览器下载不同的驱动
• 运行速度更快
• 可以跨 iframe 查找元素,无需切入切出
• 把 iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰
• 可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换
• 可以直接读取浏览器缓存来保存图片,无需用 GUI 点击另存
• 可以对整个网页截图,包括视口外的部分(90以上版本浏览器支持)

亮点功能
除了以上优点,本库还内置了无数人性化设计:

• 极简的语法规则。集成大量常用功能,代码更优雅

• 定位元素更加容易,功能更强大稳定

• 无处不在的等待和自动重试功能。使不稳定的网络变得易于控制,程序更稳定,编写更省心

• 提供强大的下载工具。操作浏览器时也能享受快捷可靠的下载功能

• 允许反复使用已经打开的浏览器。无须每次运行从头启动浏览器,调试超方便

• 使用 ini 文件保存常用配置,自动调用,提供便捷的设置,远离繁杂的配置项

• 内置 lxml 作为解析引擎,解析速度成几个数量级提升

• 使用 POM 模式封装,可直接用于测试,便于扩展

• 高度集成的便利功能,从每个细节中体现

三、结构图

WebPage 继承自 ChromiumPage 和 SessionPage ,前者负责控制浏览器,后者负责数据包收发,因此WebPage 既能控制浏览器,也能收发数据包,并且能在两种模式中共享登录状态。

![image](6575364bb37c14648be45405/image.png)

Python神器!WEB自动化测试集成工具 DrissionPage_标签页

Python神器!WEB自动化测试集成工具 DrissionPage_封装_02编辑

四、安装

pip install DrissionPage

不用安装浏览器驱动就可以直接调用比selenium强多了。

五、实例代码

from DrissionPage import ChromiumPage
# 创建页面对象,并启动或接管浏览器
page = ChromiumPage()
# 跳转到登录页面
page.get('https://id1.cloud.huawei.com/CAS/portal/loginAuth.html')  # get()方法用于访问参数中的网址。它会等待页面完全加载,再继续执行后面的代码。
txtUname =page.ele('@class:userAccount')  # 查找所有拥有 class 属性的元素
txtUname.input('亚丁号') #用户名
txtPword = page.ele('@class:hwid-input-pwd')
txtPword.input('https://www.yadinghao.com/') #密码
page.ele('@class:hwid-login-btn').click() #点击登录

Python神器!WEB自动化测试集成工具 DrissionPage_常用功能_03

比 selenium代码少多了

你有时间常去我家看看我在这里谢谢你啦...

我家地址:亚丁号

最后送大家一首诗:

山高路远坑深,
大军纵横驰奔,
谁敢横刀立马?
惟有点赞加关注大军。



标签:WEB,功能,浏览器,Python,class,DrissionPage,JS,数据包,page
From: https://blog.51cto.com/u_16269709/8759897

相关文章

  • Python从入门到实践practice6
    1文件路径2读取文件pathlib函数path3写文件4异常类型5捕捉异常try/except语句'''文件路径:绝对路径和相对路径绝对路径是从根路径开始根路径:类Unix操作系统(一个根路径)/开始Windows操作系统(多个盘多个分区)c:\D:\绝对路径类Unix操作系统/......
  • python语言在web上的应用:如何节省服务器资源?
    背景介绍在web开发中的应用广泛在web开发中的应用广泛。随着互联网的发展,web应用越来越普遍,而Python作为一种简洁、高效的编程语言,被广泛应用于web开发领域。Python提供了丰富的库和框架,如Django、Flask等,使开发人员能够快速搭建功能强大的web应用。同时,Python还具有良好的可扩展性......
  • Win10操作系统安装Python
    1Python解释器下载1.1安装环境Windows10专业工作站版22H2python-3.9.6-amd64.exe1.2下载地址Python官网:https://www.python.org/Python镜像:https://registry.npmmirror.com/binary.html?path=python/3.9.6/2Python解释器安装2.1InstallPython3.9.6(64-bit)界面......
  • python3使用pandas备份mysql数据表
    操作系统:CentOS7.6_x64Python版本:3.9.12MySQL版本:5.7.38日常开发过程中,会遇到mysql数据表的备份需求,需要针对单独的数据表进行备份并定时清理数据。今天记录下python3如何使用pandas进行mysql数据表的备份,我将从以下几个方面进行展开: 数据表备份逻辑描述 使用的相关......
  • Python 时间处理与时区转换:深入探究 datetime、time 模块与 pytz 库的功能与应用
    Python中的datetime和time模块为处理时间和日期提供了强大的功能。这些模块不仅支持时间和日期的操作,还能进行时间戳的转换、时区操作等。在本文中,我们将深入介绍这些模块的用法和实际示例。1.datetime模块:处理日期和时间datetime模块是Python标准库中用于处理日期和时间......
  • 【SpringBootWeb入门-8】分层解耦-三层架构
    1、架构前言在讲解三层架构之前,我们先来看一段Controller代码段,代码如下:packagecom.hiker.controller;importcom.hiker.pojo.Emp;importcom.hiker.pojo.Result;importcom.hiker.utils.XmlParserUtils;importorg.springframework.web.bind.annotation.RequestMapping......
  • 计分牌Scoreboarding代码实现(Python)
    代码地址:Scoreboarding:计算机体系结构作业——计分板模拟(gitee.com)简介此代码为高级计算机体系结构作业——计分板模拟器,使用python实现;模拟的CPU只有四个阶段,分别是发出指令(Issue)、读操作数(ReadOperator,RO)、执行计算(ExecuteComputation,EC)、写结果(WriteResult,WR)......
  • Python字符串的使用和相关函数方法
    字符串是Python中最常用的数据类型。我们可以使用引号(单引号或双引号)来创建字符串。本文主要介绍字符串常用操作和42个字符串相关的方法,下面具体看一下。参考文档:https://www.cjavapy.com/article/6/1、创建字符串创建很简单,只要为变量分配一个值即可。例如:var1='He......
  • Python NumPy 合并数组和分割数组
    在Python的NumPy库中,合并和分割数组是两种常用的操作,用于重组和分解数据集。将多个数据集合并为一个数据集,方便进行后续的处理。将数据集拆分为多个子数据集,用于并行处理或分布式处理。将数据集按指定条件进行分组,方便进行分析。1、合并数组合并数组是一种常见操作,允许你......
  • Vue学习之Vue结合 ElementUI 组件库搭建Web工程项目
    创建Vue项目打开cmd命令行界面,创建一个全新的vue项目,我们命名为hello-vue,这里附上ElementUI网址如下:ElementUI#使用webpack打包工具初始化一个名为hello-vue的工程vueinitwebpackhello-vueNPM安装相关组件依赖时可能会遇到权限问题,此时使用PowerShell管理员模式运行即......