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

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。

相关文章:

Selenium Manager中文文档

1. 什么是 Selenium Manager&#xff08;测试版&#xff09; Selenium Manager 是 Selenium 官方提供的命令行工具&#xff08;用 Rust 实现&#xff09;&#xff0c;用于自动管理浏览器及其驱动&#xff08;chromedriver、geckodriver、msedgedriver 等&#xff09;。从 Sele…...

WEB安全--SQL注入--MSSQL注入

一、SQLsever知识点了解 1.1、系统变量 版本号&#xff1a;version 用户名&#xff1a;USER、SYSTEM_USER 库名&#xff1a;DB_NAME() SELECT name FROM master..sysdatabases 表名&#xff1a;SELECT name FROM sysobjects WHERE xtypeU 字段名&#xff1a;SELECT name …...

【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】

- 第 102 篇 - Date: 2025 - 05 - 31 Author: 郑龙浩/仟墨 文章目录 HTML 基础学习一 了解HTML二 HTML的结构三 HTML标签1 标题2 文本段落3 换行4 加粗、斜体、下划线5 插入图片6 添加链接7 容器8 列表9 表格10 class类 HTML 基础学习 一 了解HTML 一个网页分为为三部分&…...

SAP Business ByDesign:无锡哲讯科技赋能中大型企业云端数字化转型

云端ERP时代&#xff0c;中大型企业的智能化引擎 在数字经济高速发展的今天&#xff0c;中大型企业面临着全球化竞争、供应链复杂化、数据安全等多重挑战。传统的本地化ERP系统已无法满足企业快速响应市场变化的需求&#xff0c;而SAP Business ByDesign&#xff08;ByD&…...

华为OD机考2025B卷 - 无向图染色(Java Python JS C++ C )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 给一个无向图染色,可以填红黑两种颜色,必须保证相邻两个节点不能同时为红色,输出有多少种不同的染色方案? 输入描述 第一行输入M(图中节点数) N(边数) 后续N行格式为:V1 V2表示…...

计算机网络学习20250528

地址解析协议ARP 实现IP地址和Mac地址的转换 ARP工作原理&#xff1a; 每台主机或路由器都有一个ARP表&#xff0c;表项&#xff1a;<IP地址&#xff0c;Mac地址&#xff0c;TTL>&#xff08;TTL一般为20分钟&#xff09; 主机产生ARP查询分组&#xff0c;包含源目的IP地…...

Next.js路由导航完全指南

在前端框架&#xff08;如 React、Vue 等&#xff09;或移动端开发中&#xff0c;路由系统是实现页面 / 界面导航的核心机制。Next.js 采用 文件系统路由&#xff08;File System Routing&#xff09;&#xff0c;即根据项目目录结构自动生成路由。 Next.js 目前有两套路由解决…...

五、web安全--XSS漏洞(1)--XSS漏洞利用全过程

本文章仅供学习交流&#xff0c;如作他用所承受的法律责任一概与作者无关1、XSS漏洞利用全过程 1.1 寻找注入点&#xff1a;攻击者首先需要找到目标网站中可能存在XSS漏洞的注入点。这些注入点通常出现在用户输入能够直接输出到页面&#xff0c;且没有经过适当过滤或编码的地方…...

【C++高级主题】命令空间(六):重载与命名空间

目录 一、候选函数与命名空间&#xff1a;重载的 “搜索范围” 1.1 重载集的构成规则 1.2 命名空间对候选函数的隔离 二、重载与using声明&#xff1a;精准引入单个函数 2.1 using声明与重载的结合 2.2 using声明的冲突处理 三、重载与using指示&#xff1a;批量引入命名…...

利用 Python 爬虫获取淘宝商品详情

在电商领域&#xff0c;淘宝作为中国最大的在线零售平台&#xff0c;拥有海量的商品信息。对于开发者、市场分析师以及电商研究者来说&#xff0c;能够从淘宝获取商品详情信息&#xff0c;对于市场分析、价格比较、商品推荐等应用场景具有重要价值。本文将详细介绍如何使用 Pyt…...

动态拼接内容

服务器端模板引擎&#xff08;Server-Side Template Engine&#xff09; 的特性&#xff0c;比如 JSP&#xff08;Java Server Pages&#xff09;、ASP.NET、PHP 等技术中常用的 <% %> 语法。 它的核心作用是&#xff1a; 动态拼接内容&#xff1a;在 HTML 中嵌入编程语…...

Tomcat运行比较卡顿进行参数调优

在Tomcat conf/catalina.bat或catalina.sh中 的最上面增加参数 1. 初步调整参数&#xff08;缓解问题&#xff09; set JAVA_OPTS -Xms6g -Xmx6g -Xmn3g # 增大新生代&#xff0c;减少对象过早晋升到老年代 -XX:MetaspaceSize256m -XX:MaxMetaspaceS…...

java直接获取MyBatis将要执行的动态sql命令(不是拦截器方式)

目录 前言 一. 准备数据 1. 传输过来的json条件数据 2. mybatis 配置的动态sql 3. 想要的最终会执行的sql并返回给页面展示 二. 实现方式 三. 最终代码 前言 1.在平常开发过程中,MyBatis使用时非常多的,一般情况下我们只需要在控制台看看MyBatis输出的日志,要不就是实…...

C++四种类型转换方式

const_cast,去掉&#xff08;指针或引用&#xff09;常量属性的一个类型转换,但需要保持转换前后类型一致static_cast,提供编译器认为安全的类型转换(最常使用)reinterpret_cast,类似于c语言风格的强制类型转换&#xff0c;不保证安全;dynamic_cast,主要用于继承结构中&#xf…...

Canvas: trying to draw too large(256032000bytes) bitmap.

1、错误展示 测试了一下一张图片的显示&#xff0c;发现二个手机上测试的结果不一样&#xff0c;配制好一些的手机&#xff0c;直接就通过&#xff0c;但是屏小一些的测试手机上&#xff0c;直接报下面的错误。 这个意思是图片太大了&#xff0c;直接就崩了。 2、代码编写 lo…...

【深度学习-pytorch篇】5. 卷积神经网络与LLaMA分类模型

卷积神经网络与LLaMA分类模型 一、卷积操作基础 卷积是深度学习中用于提取局部特征的核心操作&#xff0c;特别适用于图像识别任务。 自定义二维卷积函数示例 以下函数实现了一个简化版的二维卷积&#xff1a; def convolve2D(image, kernel, padding0, strides1):kernel …...

matlab全息技术中的菲涅尔仿真成像

matlab全息技术中的菲涅尔仿真成像程序。 傅里叶法&#xff08;重建距离得大&#xff09;/Fresnel.m , 545 傅里叶法&#xff08;重建距离得大&#xff09;/FresnelB.m , 548 傅里叶法&#xff08;重建距离得大&#xff09;/Fresnel_solution.m , 1643 傅里叶法&#xff08;重…...

基于对比学习的推荐系统开发方案,使用Python在PyCharm中实现

以下是一个基于对比学习的推荐系统开发方案,使用Python在PyCharm中实现。本文将详细阐述技术原理、系统设计和完整代码实现。 基于对比学习的推荐系统开发方案 一、技术背景与原理 1.1 对比学习核心思想 对比学习(Contrastive Learning)通过最大化正样本相似度、最小化负…...

网络协议之办公室网络是怎样的?

写在前面 本文来看下办公室网络怎样的。 1&#xff1a;正文 如果是在一个寝室中组件一个局域网还是比较简单的&#xff0c;只需要一个交换机&#xff0c;然后大家的电脑全部连接到这个交换机上就行了&#xff0c;之后所有的电脑设置CIDR保证在一个局域网就可以了。但是&#…...

鸿蒙OSUniApp PWA开发实践:打造跨平台渐进式应用#三方框架 #Uniapp

UniApp PWA开发实践&#xff1a;打造跨平台渐进式应用 前言 在过去的一年里&#xff0c;我们团队一直在探索如何利用UniApp框架开发高性能的PWA应用。特别是随着鸿蒙系统的普及&#xff0c;我们积累了不少有价值的实践经验。本文将分享我们在开发过程中的技术选型、架构设计和…...

uni-data-picker级联选择器、fastadmin后端api

记录一个部门及部门人员选择的功能&#xff0c;效果如下&#xff1a; 组件用到了uni-ui的级联选择uni-data-picker 开发文档&#xff1a;uni-app官网 组件要求的数据格式如下&#xff1a; 后端使用的是fastadmin&#xff0c;需要用到fastadmin自带的tree类生成部门树 &#x…...

8天Python从入门到精通【itheima】-62~63

目录 第六章开始-62节-数据容器入门 1.学习目标 2.为什么要学习数据容器&#xff1f; 3.什么是Python中的数据容器 4.小节总结 63节-列表的定义语法 1.学习目标 2.为什么需要列表&#xff1f; 3.列表定义的基本语法 4.列表定义的基本语法-案例演示 5.列表定义的基本语…...

运维 pgsql 安装完后某次启动不了

pgsql 安装完后某次启动不了 错误 data directory "/usr/local/postgresql/data" has invalid permissions 安装成功后一直可以 后面同事敲了 chmod -R 777 /usr/local 导致不行 改到了 /usr/local/postgresql/data 权限 /usr/local/postgresql/data的权限有限…...

Linux基本指令/下

目录 1.echo、cat与printf 2. > 操作符 与 >> 操作符 3. < 操作符 4.消息传送 linux文件深入 5.文件类型 6.mv命令 7.时间相关指令 8.查找命令 9.grep命令 10.zip/unzip/tar命令 11.scp命令 12.bc命令 13.uname 指令 14.快捷键大全 15.关机/重启/睡…...

matlab中绘图函数plot

MATLAB中的plot函数&#xff1a;数据可视化的强大工具 引言 在科学计算和工程领域&#xff0c;数据可视化是理解和分析数据的关键步骤。MATLAB作为一款强大的数值计算软件&#xff0c;提供了丰富的绘图功能&#xff0c;其中plot函数是最基础、最常用的二维图形绘制工具。本文…...

在线音乐服务器测试报告

1.项目背景 此项目主要用于模拟市面上主流的音乐软件的主要功能&#xff0c;提高自己的开发和测试能力。此项目采用的技术栈是SpringBoot MyBatis SpringMVC Mysql实现的&#xff0c;为了实现简单&#xff0c;方便测试&#xff0c;此项目没有注册功能&#xff0c;数据提前存…...

spark-AQE/Tungsten介绍及其触发条件

目录 1、简介2、AQE(自适应查询优化)触发条件及配置3、Tungsten(钨丝计划)触发条件及配置1、简介 AQE(Adaptive Query Execution) 定义:Spark 3.0引入的自适应查询优化技术,运行时动态调整执行计划。核心能力: 动态分区合并:自动合并小分区以减少Shuffle数据量。自动…...

leetcode-hot-100 (矩阵)

1、矩阵置零 题目链接&#xff1a;矩阵置零 题目描述&#xff1a;给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 解答 方法一&#xff1a;使用一个二维数组 这是我看到这道题目的第一个想法&am…...

深度学习中常见的超参数对系统的影响

目录 一&#xff0c;学习率&#xff08;Learning Rate&#xff09; 1.1 学习率的本质&#xff1a;控制模型 “学习步伐” 的核心参数 1.2 学习率高低的具体影响&#xff1a;过犹不及的典型后果 1.3 学习率调整策略&#xff1a;3 个实用技巧 二&#xff0c;批次大小&#x…...

评标专家系统随机抽选 开发 Excel 中使用东方仙盟软件助理——未来之窗——仙盟创梦IDE

评标专家抽取系统是针对建设项目与采购招投标&#xff0c;从专家库中随机抽取参与评标专家&#xff0c;并自动进行语音通知的管理软件。符合《中华人民共和国招标投标法》及发改委颁布的《评标专家和评标专家库管理暂行办法》&#xff1b;操作简便、保密性强。 软件根据设定抽取…...