自动化测试框架:DrissionPage(1)——安装与设置

发现了一款基于Python的网页自动化工具:DrissionPage。这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和 requests 的高效率优点。

一、DrissionPage框架产生背景
对网页实现自动化,通常会有两类形式:

直接向服务器发送请求数据包,获取需要的数据,模拟数据流向操作。
控制浏览器跟网页进行交互,模拟用户界面操作。
前者轻量级,速度快,例如requests 库。但requests面对需要登录的网站时,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高。若数据是由 JS 计算生成的,还须重现计算过程,开发效率不高。

而后者直接使用浏览器,模拟用户行为,如Selenium库,可以很大程度上绕过这些坑,但浏览器运行效率不高。

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

为什么叫DrissionPage
Selenium框架用于操作浏览器的对象叫 Driver,requests 用于管理请求连接的对象叫 Session,因此Drission 就是它们两者的合体。在旧版本中,是通过对 selenium 和 requests 的重新封装实现的。

但从 3.0 版开始,作者另起炉灶,用 chromium 协议自行实现了 selenium 全部功能,从而摆脱了对 selenium 的依赖,功能更多更强,运行效率更高,开发更灵活。

二、DrissionPage框架亮点特色
本库采用全自研的内核,对比 selenium,有以下优点:

无 webdriver 特征,不会被网站识别,无需为不同版本的浏览器下载不同的驱动 。
运行速度更快,可以跨 iframe 查找元素,无需切入切出,iframe 看作普通元素,获取后可直接在其中查找元素,逻辑更清晰。
可以同时操作浏览器中的多个标签页,即使标签页为非激活状态,无需切换。
内置等待和自动重试功能。使不稳定的网络变得易于控制,程序更稳定,编写更省心。
允许反复使用已经打开的浏览器。无须每次运行从头启动浏览器,调试超方便。
极简的语法规则。集成大量常用功能,定位元素更加容易,功能更强大稳定。
使用 POM 模式封装,可直接用于测试,便于扩展。
等等。。。


三、安装搭建
说了这么多,相信很多人已经跃跃欲试了,怎么快速搭建这套框架,先要准备一些基础环境。

环境准备

操作系统:Windows、Linux 或 Mac。
Python 版本:3.6 及以上(建议使用3.7及已上版本,因为3.6版本不支持最新的DrissionPage3.2版本)
支持浏览器:Chromium 内核(如 Chrome 和 Edge)
 

使用 pip 安装 DrissionPage(cmd下安装):

pip install DrissionPage

安装过程也是遇到了很多麻烦,下载就花了很多时间,中间下载一直断,就一直运行安装命令,总算多次安装后安装完成了。但是就觉得很奇怪:

 明明最新的是3.2.24版本,怎么一直下载到了3.1.6版本呢

使用pip show DrissionPage命令,查看安装的版本,果然是3.1.6版本

 不甘心,我就想安装最新的3.2.24版本,到网上找安装包。

地址:DrissionPage · PyPI

下载完后继续安装,又有了新问题:

 一个click包,要8.1.3版本,但是下面显示最高到8.0.4版本。

直接使用命令pip install click==8.1.3安装,还是失败

 继续上网搜,到https://pypi.org/,搜click,查看8.1.3版本,发现需要python3.7版本以上才能支持

 查看一下自己安装的Python版本,是3.6.3 

因为我使用的是Anaconda集成环境,为了更新python,我首先先尝试更新Anaconda,更新方法如下:

但是,更新失败,一直报ERROR REPORT,中间过程不表,尝试了很多方法也没有成功。最终只能卸载了Anaconda,然后去Anaconda官网下载了最新的版本,重新安装。最新版本中的python是3.10版本。安装完成后,再次安装DrissionPage,终于成功安装了最新版本3.2.24。

安装完成后,还需要设置浏览器路径:

from DrissionPage.easy_set import set_paths
set_paths(browser_path=r'这里修改为您的Chrome浏览器exe文件路径')

这段代码会记录 Chrome 浏览器路径到配置文件。由于路径设置只要运行一次即可,不要写到正式程序里。一般建议新建一个临时 py 文件,并输入以下代码,填入您电脑里的 Chrome 浏览器 exe 文件路径,然后执行。

好了至此安装设置完成,接下来可以开始正式写脚本了。

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
DrissionPage是一款基于Python语言编写的自动化测试框架。它采用了Page Object设计模式,将页面元素和测试逻辑分离,使得测试脚本更易读、易维护。 DrissionPage的框架结构清晰,包含了核心模块和扩展模块。核心模块主要包括Page模块、Element模块和Driver模块。Page模块用于封装页面对象,如登录页面、首页等;Element模块用于封装页面元素,如按钮、输入框等;Driver模块用于封装浏览器驱动,如Chrome、Firefox等。这些模块相互配合,提供了丰富的功能和方法,使得自动化测试变得简单高效。 DrissionPage的特点之一是支持多种浏览器,并提供了多个浏览器驱动的封装。用户可以根据需求选择不同的浏览器进行测试,并通过配置文件简单切换。同时,DrissionPage还提供了丰富的断言方法和日志记录功能,方便用户进行结果验证和错误追踪。 另外,DrissionPage还支持数据驱动和关键字驱动的测试方式。用户可以将测试数据与测试脚本分离,实现数据的复用和灵活性。同时,用户可以根据需求定义自己的关键字,简化测试脚本的编写和维护。 总之,DrissionPage是一个功能强大的自动化测试框架,它的设计理念和丰富的功能使得自动化测试变得简单高效。无论是初学者还是有经验的测试工程师,都可以通过学习和使用DrissionPage来提高测试效率和质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值