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

简介: 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)

四、安装

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() #点击登录

比 selenium代码少多了

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

最后送大家一首诗:

山高路远坑深,

大军纵横驰奔,

谁敢横刀立马?

惟有点赞加关注大军。

目录
相关文章
|
3月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
243 61
|
14天前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
打造高效的Web Scraper:Python与Selenium的完美结合
|
2月前
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
165 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
|
6天前
|
存储 数据采集 数据格式
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
16 1
|
2月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
96 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
3月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
156 31
Selenium IDE:Web自动化测试的得力助手
|
3月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
309 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
3月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
394 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
3月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
283 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
79 3