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

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

我家地址:亚丁号

最后送大家一首诗:

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值