@benmalka/foxdriver

中文文档
0.6.0发布于 2021/02/02Apache-2.0CommonJS近 30 天下载 3467

Foxdriver 是一个节点库,提供高级API来控制 Firefox 对远程调试协议的控制

中文使用文档
文档目录5 节
  1. 开始
  2. 安装
  3. 使用量
  4. API 密码
  5. 脚踏车

脚踏车

Foxdriver是一个节点库,它提供高级API来控制Firefox对远程调试协议的控制. 0.6.0版本现在支持在启动浏览器之前添加自定义配置文件(即 cert9.db)

开始

安装

要在您的工程中使用 Foxdriver, 运行 :

$ npm i @benmalka/foxdriver

使用量

Firefox远程调试协议由多个提供不同方法的行为体组成. Foxdriver API允许您启动一个 Firefox 实例并自动连接到协议界面. 从那里你可以使用所有演员的方法.

示例 - 打开页面并获得控制台.logs

import Foxdriver from '@benmalka/foxdriver'

(async () => {
    const { browser, tab } = await Foxdriver.launch({
        url: 'https://www.mozilla.org/en-US'
    });

    // enable actor
    await tab.console.startListeners();
    // wait until page is loaded
    await new Promise((resolve) => setTimeout(resolve, 3000));
    // receive logs and page errors
    const logs = await tab.console.getCachedMessages();
    console.log(logs);

    // close browser
    browser.close();
})()

您也可以连接到已经运行的 Firefox 浏览器中 。 这需要启动浏览器 -start-debugger-server=<port> cli 参数和设置如下:

  • devtools.chrome.enabled: true
  • devtools.debugger.prompt-connection: false
  • devtools.debugger.remote-enabled: true

要连接到浏览器, 您需要创建一个正确的端口和主机的 Foxdriver 实例, 并呼叫 connect() 方法 :

import Foxdriver from '@benmalka/foxdriver'

(async () => {
    const { browser, tab } = await Foxdriver.attach('localhost', 9222);
    const preferences = await browser.preference.getAllPrefs();

    // ...
})()

API 密码

脚踏车

Foxdriver.attach (主机, 端口)

将客户端附加到已运行实例中 .

  • host <String> 启动 Firefox 实例的主机
  • port <Number> 启动 Firefox 实例的端口
  • 返回 : <Promise<Object>>
    • tab <[Tab]> 打开的标签列表
    • browser <Browser> 浏览器实例

Foxdriver. launch( 选项)

将客户端附加到已运行实例中 .

  • options <Object>
    • port <Number> 启动 Firefox 实例的端口
    • bin <String> firefox 二进制路径( 默认: OS 默认路径)
    • args <[String]> 转到 fs.spawn (默认 : [](中文(简体) )
    • customPrefs <Object> 在浏览器启动之前,您可以通过设置预览的密钥值对来设定自己的首选项。 请注意,不可能覆盖所需的预告,即.
      • devtools.chrome.enabled: true
      • devtools.debugger.prompt-connection: false
      • devtools.debugger.remote-enabled: true
    • customProfileFiles <[String]> 数组 绝对 要复制到随机生成的配置文件文件夹的文件路径。 这在使用Firefox中自签的证书时很有帮助. 看这里 Firefox 中如何使用自签名证书
  • 返回 : <Promise<Object>>
    • tab <Tab> 打开标签
    • browser <Browser> 浏览器实例

类: 浏览器

关闭( c)

从浏览器实例中断开连接, 如果通过 : launch() 方法

类: 标签

选项卡.attach ()

附着于此标签

  • 返回 : <Promise> 发送请求后完成
选项卡.detach ()

从此标签中删除

  • 返回 : <Promise> 发送请求后完成
选项卡.reload ()

重新装入当前页面 URL.

  • 返回 : <Promise> 发送请求后完成
选项卡.cache 残废(残废)

禁用缓存 .

  • disable <Boolean> 如果是真的, 缓存是断裂的
  • 返回 : <Promise> 发送请求后完成
选项卡.navigateTo(url)

导航到某个 URL

  • url <String> 浏览到
  • 返回 : <Promise> 发送请求后完成
选项卡.onTabNavigated(召回)

标签导航端发生事件

  • callback <Function> 将被调用为活动

详情请查阅 API 文件。 。 。 .

版本与发布记录

@benmalka/foxdriver 共发布 13 个版本,首次发布于 2019/11/30;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.6.0latest2021/02/025 年前
0.5.02020/10/116 年前
0.4.32020/09/076 年前
0.4.22020/09/016 年前
0.4.12020/06/306 年前
0.4.02020/03/226 年前

关于 @benmalka/foxdriver 的常见问题

@benmalka/foxdriver 是什么?

Foxdriver 是一个节点库,提供高级API来控制 Firefox 对远程调试协议的控制

如何安装 @benmalka/foxdriver?

在项目目录运行 npm install @benmalka/foxdriver,或使用 pnpm add / yarn add / bun add。

@benmalka/foxdriver 支持 TypeScript 吗?

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

@benmalka/foxdriver 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@benmalka/foxdriver 可以商用吗?

@benmalka/foxdriver 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@benmalka/foxdriver 的下载量有多少?

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

@benmalka/foxdriver 还在维护吗?

最新版本 0.6.0 发布于 2021/02/02(5 年前);至今共发布 13 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/11/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。