DrissionPage 一个替代selenium的pip --- 一个可以接管正在运行的chrome包

DrissionPage 一个替代selenium的pip包,持续更新

1、加载内容,并接管chrome浏览器

bash 复制代码
from DrissionPage import ChromiumPage, ChromiumOptions
page = ChromiumPage(addr_or_opts='127.0.0.1:9222')
print(page.title)

ul = page.eles('@id=form-submit')
for i in ul:
    print(i.text)
    
废话

DrissionPage 是一个基于 Selenium 的自动化测试框架,它简化了 Selenium 的使用过程,并且支持多种浏览器。下面是一段关于 DrissionPage 的学习笔记示例:


DrissionPage 学习笔记

1. 引言
  • 目的:了解和掌握 DrissionPage 的基本用法及优势。
  • 背景:Selenium 虽然功能强大,但代码复杂度较高,DrissionPage 则通过封装常用操作,提高了自动化脚本的开发效率。
2. 安装与配置
  • 安装 :

    bash 复制代码
    pip install drissionpage
  • 环境准备 :

    • 安装对应浏览器及其驱动程序(如 ChromeDriver)。
    • 设置环境变量,确保浏览器驱动可被访问。
3. 基本用法
  • 初始化浏览器:

    python 复制代码
    from drissionpage import DrissionPage
    
    # 初始化浏览器实例
    page = DrissionPage(browser='chrome')
  • 打开网页:

    python 复制代码
    page.get('https://www.example.com')
  • 元素定位:

    • CSS 选择器 :

      python 复制代码
      element = page.locator_css('#element-id').wait()
    • XPath :

      python 复制代码
      element = page.locator_xpath('//div[@id="element-id"]').wait()
  • 元素交互:

    • 点击 :

      python 复制代码
      element.click()
    • 输入文本 :

      python 复制代码
      element.type('Hello, World!')
  • 关闭浏览器:

    python 复制代码
    page.quit()
4. 高级特性
  • 页面等待:

    python 复制代码
    page.wait_page_load()
  • 断言:

    python 复制代码
    assert page.locator_css('#element-id').exists()
  • 截图:

    python 复制代码
    page.screenshot('example.png')
5. 示例代码
python 复制代码
from drissionpage import DrissionPage

def test_example():
    page = DrissionPage(browser='chrome')

    try:
        page.get('https://www.example.com')
        page.wait_page_load()

        search_box = page.locator_css('#search-box').wait()
        search_box.type('test query')
        search_box.submit()

        results = page.locator_css('.search-result').wait_all()
        assert len(results) > 0

    finally:
        page.quit()

if __name__ == '__main__':
    test_example()
6. 总结
  • DrissionPage 通过提供简洁的 API 和封装机制,大大降低了使用 Selenium 进行 Web 自动化测试的难度。
  • 适合快速原型开发和日常测试任务。

相关推荐
不像程序员的程序媛7 小时前
maven基础
python·pycharm·maven
xiaogai_gai8 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
benchmark_cc8 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu8 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
估值探索者9 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
田里的水稻10 小时前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习
Dmz丶10 小时前
前端转 AI 100 天 Day 27:Docker 容器化——从“我电脑能跑“到“到处能跑“
python
卿卿的产品经理日记10 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
全栈练习生10 小时前
文档智能与实践
python·ai
隐擎fox10 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip