@eyeo/get-browser-binary

中文文档
0.26.0发布于 2026/09/30GPL-3.0ES Module近 30 天下载 8218

安装浏览器二进制并匹配网络驱动器

中文使用文档
文档目录17 节
  1. 开始
  2. 支持的浏览器版本
  3. 微博记录
  4. 离线执行
  5. 发展
  6. 先决条件
  7. 安装/更新依赖关系
  8. 忽略/ 缓存的文件夹
  9. 定型和格式化
  10. 测试
  11. 选项
  12. 测试服务器
  13. 正在对 Docker 进行测试
  14. 在 macOS 中装入扩展
  15. 编制文件
  16. 发布指令
  17. 行为守则

获取浏览器二进制

为 Chromium、 Chrome 安装特定浏览器版本用于测试、 Firefox 边缘及其相配 硒网司机。 。 。 .

开始

下面的样本显示如何安装最新的铬并使用 硒网驱动器:

import { BROWSERS } from "@eyeo/get-browser-binary";

(async function example() {
  let { binary } = await BROWSERS.chromium.installBrowser("latest");
  console.log(`Chromium executable location: ${binary}`);

  let driver = await BROWSERS.chromium.getDriver("latest");
  await driver.navigate().to("https://example.com/");
  await driver.quit();
})();

测试/浏览器.js 提供了图书馆的其他用法实例.

详情请查阅 API 文档。 。 。 . 如果您已经在文档页面上, 您可以在 右边.

支持的浏览器版本

  • 铬 127
  • 测试颜色 127
  • Firefox 128 (英语)
  • Edge 127 (Linux), Edge 最新版本 (MacOS, Windows)

这些遵循了由eyo扩展支持的浏览器版本. 版本数 的浏览器折旧政策.

用于测试的铬与铬

两者都以铬为原料,但来自不同的配电管道:

铬 由开源铬项目建造。 快照构建为 由他们的承诺而不是稳定的版本串识别, 和克流克流必须分别源码并手动同步. 抓图 由于老建筑可能会从CDN中消失,因此无法保证供应.

Chromium同时支持MV2和MV3.

测试用铬(CfT) 是Google官方发布的 专门用于自动化测试。 关键差异 :

  • 每个发行由稳定的Chrome版本字符串(例如. 113.0.5672.0(中文(简体) ) 以及带有相配色相的船舶,消除了版本不匹配的问题.
  • 发行版被永久存档,因此被封装的版本仍然可以再出.
  • 可通过 测试可用性仪表板的颜色。 。 。 .
  • 仅支持MV3.

就CI管道而言,试验的铬比较可取,因为 有版本,配对的铬河分布使得能建立更可再生.

当需要MV2支持时,铬快照仍然有用.

微博记录

设定 VERBOSE 环境变量改为 "true" 获取动词记录 下载请求.

离线执行

可以运行浏览器离线,只要它们以前是 已安装。 示例

// Online
let { binary } = await BROWSERS[browser].installBrowser(version);
console.log(binary); // keep the browser binary location to use it offline
let driver = await BROWSERS[browser].getDriver(version); // let the driver binary download

// Offline
let customBrowserBinary = "<browser binary location>";
let driver = await BROWSERS[browser].getDriver(version, {
  customBrowserBinary,
});

发展

先决条件

  • 节点 QQ 18
  • npm 第9页
  • unzip 在 Linux 和 macOS 上,需要安装 Chromium 和 Chrome 用于 测试( Windows 使用内置 tar.exe(中文(简体) )

安装/更新依赖关系

npm install

忽略/ 缓存的文件夹

所有浏览器和 Webdriver 文件将提取到 ./browser-snapshots 文件夹,它可能被忽略(例如将其添加到 .gitignore) (中文(简体) ).

另一方面, ./browser-snapshots/<browser_name>/cache 将持有所有 下载所需的安装文件 <browser_name>因此,这可能是 用于添加 ./browser-snapshots/*/cache 中缓存文件夹列表 您的线程配置 .

定型和格式化

npm run lint         # ESLint + Prettier check
npm run lint-fix     # auto-fix ESLint issues and reformat with Prettier

测试

运行所有测试 :

npm test

选项

这个 grep 选项过滤要用正则表达式运行的测试。 示例

npm test -- --grep "chromium.*latest"

这个 timeout 选项将超过 .mocharc.json。 。 。 . 增加超时可能对缓慢的连接环境有用:

npm test -- --timeout <ms>

默认情况下,测试会删除 ./browser-snapshots 每个字之前 Browser 套间 运行。 为了改变行为,你可以设置 TEST_KEEP_SNAPSHOTS 环境 变量为 true示例:

TEST_KEEP_SNAPSHOTS=true npm test

测试服务器

测试使用本地 http 服务器, 该服务器由 npm test 命令。 若为 ,测试服务器也可以独立运行 :

npm run test-server

然后可以在单独的会话中进行测试. 示例

npm run test-suite -- --grep "chromium.*latest"

正在对 Docker 进行测试

有助于复制环境 test:browsers:linux 任务.

英特尔/AMD架构

docker build -f test/docker/Dockerfile -t browsers .
docker run --shm-size=512m -it browsers

这个 grep 财务报告和审定财务报表 timeout 选项也可以通过 TEST_ARGS 参数 :

docker run --shm-size=512m -e TEST_ARGS="--grep chromium.*latest --timeout 100000" -it browsers

ARM架构 (M1/M2 苹果硅)

跑步是模拟AMD架构完成的. 所需经费:

  • (文图拉)
  • 罗塞塔
  • 在多克启用了“使用Rosetta在苹果硅上模拟x86/amd64”的功能

这个 --platform 选项

docker run --platform linux/amd64 --shm-size=512m -e TEST_ARGS="--grep chromium.*latest" -it browsers

在 macOS 中装入扩展

macOS TCC(透明度、同意性和控制性) 增加额外保护 以下文件夹 :

  • 文档
  • 下载
  • 桌面

如果扩展名恰好位于部队派遣国文件夹内,则Chrome试图 装入,macOS拒绝他们访问.

通常接下来是权限对话框 。 但是,在无头模式下,没有 显示权限对话框, 而扩展未静默地加载 .

之后的错误可能大相径庭。 这里有一个例子:

         updates an extension:
     TimeoutError: /index.html did not open
Wait timed out after 8008ms

为避免这类问题,将扩展文件夹移出受部队派遣国保护的文件夹 目录(例如直接在您主目录下).

编制文件

npm run docs

发布指令

发布指令在 GitLab 维基百科。 。 。 .

重置依赖于 get-browser-binary (例如:. Extensions 财务报告和审定财务报表 testpages.adblockplus.org(中文(简体) ) 需要更新,以便在发布后消耗新版本.

行为守则

这个项目的所有参与者都必须阅读并跟踪我们 行为守则。 。 。 .

版本与发布记录

@eyeo/get-browser-binary 共发布 35 个版本,首次发布于 2022/07/08;过去 12 个月发布了 10 个版本。

版本发布日期距今
0.26.0latest2026/09/301 个月前
0.25.02026/09/231 个月前
0.24.52026/09/022 个月前
0.24.42026/08/073 个月前
0.24.32026/06/194 个月前
0.24.22026/06/174 个月前

关于 @eyeo/get-browser-binary 的常见问题

@eyeo/get-browser-binary 是什么?

安装浏览器二进制并匹配网络驱动器

如何安装 @eyeo/get-browser-binary?

在项目目录运行 npm install @eyeo/get-browser-binary,或使用 pnpm add / yarn add / bun add。

@eyeo/get-browser-binary 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/eyeo__get-browser-binary 是否存在。

@eyeo/get-browser-binary 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@eyeo/get-browser-binary 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@eyeo/get-browser-binary 可以商用吗?

@eyeo/get-browser-binary 使用 GPL-3.0 许可。强 Copyleft:分发包含该代码的软件时,整个作品需以 GPL-3.0 兼容许可开源,并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括,不构成法律意见,请以许可原文为准。

@eyeo/get-browser-binary 的下载量有多少?

根据 npm 官方下载统计,@eyeo/get-browser-binary 在 2026/10/14 – 2026/11/12 这 30 天内被下载 8,218 次,日均约 274 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@eyeo/get-browser-binary 还在维护吗?

最新版本 0.26.0 发布于 2026/09/30(1 个月前);至今共发布 35 个版本,其中过去 12 个月发布了 10 个;首次发布于 2022/07/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。