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

Selenium Manager中文文档

1. 什么是 Selenium Manager(测试版)

Selenium Manager 是 Selenium 官方提供的命令行工具(用 Rust 实现),用于自动管理浏览器及其驱动(chromedriver、geckodriver、msedgedriver 等)。从 Selenium 4.6.0 起,各语言绑定默认内置它,你无需额外安装或在代码里做任何配置,只要用官方的 Selenium 库,就能自动调用它。

2. 为什么要做 Selenium Manager?

  • 背景问题:Selenium 要操控浏览器,需要一个“驱动”(Driver)做桥梁。过去用户必须手动下载对应浏览器版本的驱动并把它放到 PATH 下,或者在代码里指定路径。

  • 痛点:浏览器(如 Chrome)会自动更新,驱动版本如果不匹配就会报错(例如 Chrome 更新到 115,而驱动还是 113,就会提示版本不兼容)。

  • 解决方案:社区已有各种第三方驱动管理器(WebDriverManager、webdriver-manager、webdrivers 等),说明大家都需要这个功能。Selenium Manager 就是官方内置的驱动管理器,一站式解决下载、缓存、版本匹配的问题。

3. Selenium Manager 的核心功能

3.1 自动化驱动管理

  1. 浏览器版本检测:运行系统命令(如 google-chrome --version)获取本地浏览器版本。

  2. 驱动版本解析:根据浏览器版本,从厂商提供的在线元数据接口(如 Chrome for Testing)查到对应的驱动版本。

  3. 驱动下载与缓存:将驱动压缩包下载、解压,并缓存到 ~/.cache/selenium 目录;下次用同一版本就直接复用缓存。

3.2 自动化浏览器管理(4.11.0+)

Selenium Manager 还没在本机没有安装浏览器时,自动下载并缓存:

  • Chrome(基于 Chrome for Testing)

  • Firefox(基于官方发布)

  • Edge(基于官方发布)

你还可以通过 --browser-version 或对应语言绑定的浏览器选项,指定要下载的版本(如 114、beta、dev、canary、ESR 等标签)。

4. Windows 下 Edge 安装的特殊说明

  • Windows 上 Edge 安装包是 MSI,需要管理员权限才能执行。

  • 如果在非管理员权限环境里自动安装,Selenium Manager 会给出“需要管理员权限”提示,用户需自行以管理员身份安装。

5. 数据收集与隐私

  • Selenium Manager 会每天向 Plausible 发送匿名使用统计(Selenium 版本、语言绑定、操作系统、浏览器版本、粗略地理位置)。

  • 如需关闭统计,上设置环境变量:

    export SE_AVOID_STATS=true

6. 配置方式

可以通过三种优先顺序配置 Selenium Manager:

  1. 命令行参数selenium-manager --help 可查看支持的所有参数)

  2. 配置文件~/.cache/selenium/se-config.toml,TOML 格式)

  3. 环境变量(把配置名转大写,加前缀 SE_,如 SE_BROWSER=chrome

常见配置例子:

# se-config.toml
browser = "chrome"
driver = "chromedriver"
browser-version = "106"
driver-version = "106.0.5249.61"
cache-path = "/custom/cache/path"
avoid-stats = true

 

7. 缓存机制

  • 默认缓存路径:~/.cache/selenium

  • 驱动和浏览器下载后解压到子目录,下次复用。

  • 元数据文件 se-metadata.json 存储最近一次解析的版本及 TTL(默认 3600 秒),在 TTL 有效期内不重复网络请求。

  • 可用 --clear-cacheSE_CLEAR_CACHE=true 清空所有缓存;用 --clear-metadataSE_CLEAR_METADATA=true 清除版本元数据。

8. 版本与获取

  • Selenium Manager 本身版本号与 Selenium 保持一致(例如 Selenium 4.12.0 附带的 Selenium Manager 为 0.4.12,仍处在 0.x 测试版阶段)。

  • 获取方式:

    • 直接随 Selenium 库一起安装

    • 从 GitHub Releases 或构建工作流下载二进制

    • 已安装时可在缓存目录 ~/.cache/selenium/manager/<version>/selenium-manager 找到

9. 命令行示例

  • 自动下载驱动

./selenium-manager --browser chrome --debug

        会检测本地 Chrome 版本,下载并缓存对应 chromedriver,然后输出驱动和浏览器路径。

  • 下载 beta 版浏览器及驱动

./selenium-manager --browser chrome --browser-version beta --debug
  • 管理 Selenium Grid

./selenium-manager --grid

         自动下载最新的 seenium-server.jar;也可指定版本 --grid 4.5.0

10. 在代码中启用 Selenium Manager

  • Java/Python/C# 等原来手动指定驱动的写法

    # 旧写法 driver = webdriver.Chrome(executable_path="path/to/chromedriver")
  • 升级到 Selenium Manager 后,只需:

    # 新写法,自动管理 driver = webdriver.Chrome()

11. 已知限制与兼容性

  • 网络环境:在企业代理或防火墙环境下,可能需要配置 --proxySE_PROXY

  • Linux 上的依赖:某些浏览器可执行文件需系统库(如 libdbus-glib-1.so.2, libatk-1.0.so.0),需用包管理器安装。

  • 架构支持:官方仅保证 Windows(x86/x64)、macOS(x64/aarch64)、Linux(x64)。其他架构(如 ARM64 Linux、Raspberry Pi)需自建或用 SE_MANAGER_PATH 指定自编译的二进制。

  • 自定义管理:可以用环境变量 SE_CHROMEDRIVERSE_GECKODRIVER 等,手动指定驱动路径,绕过 Selenium Manager。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/225877.html

相关文章:

  • Python-Selenium报错截图
  • hysAnalyser --- 逐包分析MPEG-TS的功能说明
  • 图文详解Java集合面试题
  • 量化面试绿皮书:1. 海盗分金博弈
  • 树莓派3B小练习
  • 【JMeter】性能测试知识和工具
  • Spring AI Image Model、TTS,RAG
  • 区块链可投会议CCF B--EDBT 2026 截止10.8 附录用率
  • 基于React + TypeScript构建高度可定制的QR码生成器
  • Codeforces Round 1028 (Div. 2) C. Gellyfish and Flaming Peony
  • MCU SoC
  • 【Dv3Admin】系统视图系统配置API文件解析
  • 举办中国户外运动展哪个城市较理想
  • Vert.x学习笔记-EventLoop与Context的关系
  • LTSPICE仿真电路:(三十二)差动放大器电流源
  • RPA办公自动化工具初体验
  • 使用 DeepSeek API 搭建智能体《无间》- 卓伊凡的完整指南 -优雅草卓伊凡
  • 【Oracle】数据备份与恢复
  • “候选对话链”(Candidate Dialogue Chain)概念
  • 历年中山大学计算机保研上机真题
  • 【极客日常】分享go开发中wire和interface配合的一些经验
  • DRW - 加密市场预测
  • 多自主水下航行器(AUV)协同围捕策略
  • 蓝桥云课ROS学习C++教程cpp-geeksforgeeks版本
  • 【AI论文】SWE-rebench:一个用于软件工程代理的任务收集和净化评估的自动化管道
  • Cinnamon开始菜单(1):获取应用数据
  • 基于Dify实现各类报告文章的智能化辅助阅读
  • 数据共享交换平台之数据资源目录
  • 大模型登《情报学报》!大模型驱动的学术文本挖掘!
  • 内存管理 : 05 内存换入-请求调页