自动化测试框架:DrissionPage

一、工具概述

DrissionPage 是一个基于 python 的网页自动化工具。它既能控制浏览器,也能收发数据包,还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。它功能强大,内置无数人性化设计和便捷功能。它的语法简洁而优雅,代码量少,对新手友好。

  • 支持 Windows、Linux 和 Mac 系统,满足不同用户的需求;
  • 需要 Python 3.6 或更高版本,确保了代码的现代性和兼容性;
  • 支持所有 Chromium 内核的浏览器,如 Chrome 和 Edge;
  • 4.0 版本中,许多 API 发生了变化,包括新的抓包功能、页面访问逻辑、下载管理功能等;

二、安装使用

1、安装

pip install DrissionPage -i https://pypi.tuna.tsinghua.edu.cn/simple

2、模拟登录

from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get('https://gitee.com/login')
ele = page.ele('#user_login')
ele.input('账号')
page.ele('#user_password').input('密码')
page.ele('@value=登 录').click()

3、下载图片


from DrissionPage import SessionPage
url = 'https://www.baidu.com/img/flexible/logo/pc/result.png'
save_path = r'images'  # 保存的路径,当前的项目路径,如为空则保存在与py同目录
page = SessionPage()
page.download(url, save_path, 'img')

4、获取html元素值

from DrissionPage import WebPage
page = WebPage()
page.get('https://gitee.com/explore')
page('#q').input('DrissionPage')
page('t:button@tx():搜索').click()
page.wait.load_start()
page.change_mode()
items = page('#hits-list').eles('.item')
# 遍历获取到的元素
for item in items:
    print(item('.title').text)
    print(item('.desc').text)
    print()

三、高级用法

element.click(by_js)  # 点击元素,可选择是否用 js 方式点击
element.input(value)  # 输入文本
element.run_script(js)  # 对元素运行 JavaScript 脚本
element.submit()  # 提交
element.clear()  # 清空元素
element.screenshot(path, filename)  # 对元素截图
element.select(text)  # 根据文本选择下拉列表
element.set_attr(attr, value)  # 设置元素属性值
element.remove_attr(attr)  # 删除属性
element.drag(x, y, speed, shake)  # 拖动元素相对距离,可设置速度和是否随机抖动
element.drag_to(ele_or_loc, speed, shake)  # 拖动元素到另一个元素或某个坐标,可设置速度和是否随机抖动
element.hover()  # 在元素上悬停鼠标
element.html  # 返回元素 outerHTML
element.inner_html  # 返回元素 innerHTML
element.tag  # 返回元素 tag name
element.text  # 返回元素 innerText 值
element.comments  # 返回元素内注释列表
element.link  # 返回元素 href 或 src 绝对 url
element.texts()  # 返回元素内所有直接子节点的文本,包括元素和文本节点,可指定只返回文本节点
element.attrs  # 返回元素所有属性的字典
element.attr(attr)  # 返回元素指定属性的值
element.css_path  # 返回元素绝对 css 路径
element.xpath  # 返回元素绝对 xpath 路径
element.parent  # 返回元素父元素
element.next  # 返回元素后一个兄弟元素
element.prev  # 返回元素前一个兄弟元素
element.parents(num)  # 返回第 num 级父元素
element.nexts(num, mode)  # 返回后面第几个元素或节点
element.prevs(num, mode)  # 返回前面第几个元素或节点
element.ele(loc_or_str, timeout)  # 返回当前元素下级第一个符合条件的子元素、属性或节点文本
element.eles(loc_or_str, timeout)  # 返回当前元素下级所有符合条件的子元素、属性或节点文本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研创通之逍遥峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值