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代码少多了

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

最后送大家一首诗:

山高路远坑深,

大军纵横驰奔,

谁敢横刀立马?

惟有点赞加关注大军。

目录
相关文章
|
2天前
|
数据挖掘 jenkins 测试技术
python集成测试持续集成
【4月更文挑战第20天】
9 2
|
2天前
|
测试技术 Python
python集成测试执行测试
【4月更文挑战第20天】
12 6
|
2天前
|
算法 安全 Linux
Ansible自动化工具copy复制用法
Ansible 中的 copy 模块用于将文件或目录从本地计算机或远程主机复制到远程主机上的特定位置。它是一个功能强大的模块,可用于各种文件传输任务. ### 作用 将配置文件复制到远程服务器 将应用程序部署到远程服务器 将日志文件从远程服务器复制到本地计算机 备份和恢复文件和目录
Ansible自动化工具copy复制用法
|
4天前
|
敏捷开发 测试技术 持续交付
探索自动化测试在持续集成中的关键作用
【4月更文挑战第24天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已经成为确保软件质量和加速交付过程的核心环节。本文将深入探讨自动化测试如何与持续集成协同工作,提升开发流程的效率和可靠性。我们将分析自动化测试的策略、工具选择以及最佳实践,并讨论其对缩短反馈周期、降低风险和提高生产力的影响。通过案例研究和实际经验分享,本文旨在为读者提供实施高效自动化测试策略的深刻见解。
|
4天前
|
测试技术 API 网络架构
Python的api自动化测试 编写测试用例
【4月更文挑战第18天】使用Python进行API自动化测试,可以结合`requests`库发送HTTP请求和`unittest`(或`pytest`)编写测试用例。以下示例: 1. 安装必要库:`pip install requests unittest` 2. 创建`test_api.py`,导入库,定义基础URL。 3. 创建继承自`unittest.TestCase`的测试类,包含`setUp`和`tearDown`方法。 4. 编写测试用例,如`test_get_users`,检查响应状态码和内容。 5. 运行测试:`python -m unittest test_api.py`
12 2
|
4天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
4天前
|
存储 运维 Shell
Ansible自动化运维工具安装和基本使用
Ansible 是一款无代理的IT自动化工具,通过SSH连接目标主机执行配置管理、应用部署和云端管理任务。它使用YAML编写的Playbook定义任务,核心组件包括Playbook、模块、主机清单、变量等。Ansible的优势在于易用、功能强大、无须在目标主机安装额外软件,并且开源。安装过程涉及配置网络源、yum安装和SSH密钥设置。通过定义主机清单和使用模块进行通信测试,确保连接成功。
Ansible自动化运维工具安装和基本使用
|
4天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
24 0
|
5天前
|
测试技术 持续交付 API
Python的UI自动化测试
【4月更文挑战第17天】Python UI自动化测试涉及Selenium(Web)、Appium(移动应用)和PyQt(桌面应用)等框架。基本步骤包括确定测试目标、选择合适框架、安装配置、编写测试脚本、运行调试以及集成到CI/CD流程。注意自动化测试不能完全取代人工测试,应根据需求平衡使用。
8 1

热门文章

最新文章