当前位置: 首页 > news >正文

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

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

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

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. 安装与配置
  • 安装
    pip install drissionpage
    
  • 环境准备
    • 安装对应浏览器及其驱动程序(如 ChromeDriver)。
    • 设置环境变量,确保浏览器驱动可被访问。
3. 基本用法
  • 初始化浏览器

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

    page.get('https://www.example.com')
    
  • 元素定位

    • CSS 选择器
      element = page.locator_css('#element-id').wait()
      
    • XPath
      element = page.locator_xpath('//div[@id="element-id"]').wait()
      
  • 元素交互

    • 点击
      element.click()
      
    • 输入文本
      element.type('Hello, World!')
      
  • 关闭浏览器

    page.quit()
    
4. 高级特性
  • 页面等待

    page.wait_page_load()
    
  • 断言

    assert page.locator_css('#element-id').exists()
    
  • 截图

    page.screenshot('example.png')
    
5. 示例代码
from drissionpage import DrissionPagedef 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) > 0finally:page.quit()if __name__ == '__main__':test_example()
6. 总结
  • DrissionPage 通过提供简洁的 API 和封装机制,大大降低了使用 Selenium 进行 Web 自动化测试的难度。
  • 适合快速原型开发和日常测试任务。

http://www.lryc.cn/news/419127.html

相关文章:

  • 爬虫入门--了解相关工具
  • django项目中通用的分页组件
  • 想实现ubuntu搭建sqli-labs靶场
  • tp8 按日期分组查出数据
  • 单例模式(懒汉模式,饿汉模式)
  • 【Qt】Item Widgets 多元素控件
  • sharded_inference_engine:MLXDynamicShardInferenceEngine;step
  • JAVA开发学习-day21
  • Python的安装环境以及应用
  • TabLayout使用以及自定义tab标签
  • 第二十节、有限状态机和抽象类多态
  • SQL注入实例(sqli-labs/less-23)
  • 3.Redis数据类型(二)
  • JavaWeb系列十一: Web 开发会话技术Session
  • k8s中yaml文件的编写
  • 打卡第37天------动态规划
  • openfeign本地试用
  • 数据库|SQLServer数据库:查询函数(SUM、COUNT、MAX、MIN、AVG)的使用
  • 简单Qt贪吃蛇项目
  • 画菱形(曼哈顿距离)
  • CSP初赛知识点讲解(六)
  • linux rocky 9.2系统安装mysql-wsrep-8.4.2-26.20-linux-x86_64.tar.gz二进制包
  • QT实现上传服务器功能
  • 元岳食堂采购供应链系统-智慧食堂数据化解决方案
  • 基于Java+SpringBoot+Vue的影城管理系统
  • 自定义starter
  • Docker 入门全攻略:安装、操作与常用命令指南
  • mstsc被卸载,远程桌面mstsc.exe重装
  • 从根儿上学习spring 十一 之run方法启动第四段(5)
  • 常见8种数据结构