探索新自动化测试框架:DrissionPage

图片[1]-探索新自动化测试框架:DrissionPage-山海云端论坛

今天向大家推荐一款基于Python的网页自动化工具:DrissionPage。这款工具融合了控制浏览器和收发数据包的功能,集合了WEB浏览器自动化的便利性和requests库的高效率优点。

一、DrissionPage框架产生背景

网页自动化通常有两种形式:

  1. 直接发送请求数据包到服务器,模拟数据流向操作。
  2. 控制浏览器与网页进行交互,模拟用户界面操作。

前者轻量快速,但面对需要登录、验证码等情况时门槛较高;后者使用浏览器模拟用户操作,避免了很多困难,但运行效率较低。

DrissionPage的设计初衷就是将两者合而为一,既能够在需要时切换相应模式,又提供了人性化的使用方法,提高了开发和运行效率。

二、DrissionPage框架亮点特色

  • 使用全自研的内核,摆脱了对selenium的依赖,运行速度更快。
  • 可以同时操作浏览器中的多个标签页,无需切换。
  • 内置等待和自动重试功能,使程序更稳定,编写更省心。
  • 允许反复使用已经打开的浏览器,调试超方便。
  • 极简的语法规则,功能更强大稳定。
  • 使用POM模式封装,便于扩展。

三、安装搭建

环境准备:

  • 操作系统:Windows、Linux或Mac。
  • Python版本:3.6及以上
  • 支持浏览器:Chromium内核(如Chrome和Edge)

安装DrissionPage:

<code>pip install DrissionPage</code>

浏览器路径设置

<code>from DrissionPage.easy_set import set_paths set_paths(browser_path=r'您的Chrome浏览器exe文件路径')</code>

四、实战一下

启动浏览器并访问百度:

<code>from DrissionPage import ChromiumPage page = ChromiumPage() page.get('https://www.baidu.com')</code>

与selenium框架代码对比:

图片[2]-探索新自动化测试框架:DrissionPage-山海云端论坛
<code># 案例一:查找第一个文本包含some text的元素 # 使用selenium element = WebDriverWait(driver).until(ec.presence_of_element_located((By.XPATH, '//*[contains(text(), "some text")]'))) # 使用DrissionPage element = page('some text')</code>

与requests框架代码对比:

图片[3]-探索新自动化测试框架:DrissionPage-山海云端论坛
<code># 案例一:获取元素内容 url = 'https://baike.baidu.com/item/python' # 使用requests from lxml import etree headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'} response = requests.get(url, headers = headers) html = etree.HTML(response.text) element = html.xpath('//h1')[0] title = element.text # 使用DrissionPage page = WebPage('s') page.get(url) title = page('tag:h1').text</code>

五、小结

DrissionPage虽然还存在一些不足之处,但整体来说,设计理念值得借鉴,更多功能等待大家去探索。项目文档地址:

DrissionPage虽然还存在一些不足之处,但整体来说,设计理念值得借鉴,更多功能等待大家去探索。项目文档地址:http://g1879.gitee.io/drissionpagedocs/

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容