乐趣区

puppeteerfirefox-开启扩展

puppeteer-firefox 安装扩展

puppeteer-firefox 目前已经有许多人在投入开发工作,但是和 chrome 的 launch 打开扩展 api 不一致,在 chrome 中,我们可以很容易配置参数就可以打开插件,但是在 firefox 中我们要使用 web-ext 去启动 firefox 并且使用 connect 去连接。

官方 issue

Current tip-of-tree status of Puppeteer-Firefox is availabe at isPuppeteerFirefoxReady?

Add-ons

Firefox Add-ons differs from Chrome extensions, hence precess of its install is different.
Firefox Add-on can be installed using web-ext library which runs Firefox binary and can be connected using Puppeteer connect API.

const webExt = require('web-ext').default;
const pptrFirefox = require('puppeteer-firefox');
const getPort = require('get-port');
(async () => {const CDPPort = await getPort();
  await webExt.cmd.run(
      {
        sourceDir: 'path-to-add-on',
        firefox: pptrFirefox.executablePath(),
        args: [`-juggler=${CDPPort}`]
      },
      {
        // These are non CLI related options for each function.
        // You need to specify this one so that your NodeJS application
        // can continue running after web-ext is finished.
        shouldExitProgram: false
      }
    );
    const browser = await pptrFirefox.connect({browserWSEndpoint: `ws://127.0.0.1:${CDPPort}`
    });
})();

package.json example

{
  "dependencies": {
    ...
    "get-port": "^4.2.0",
    "web-ext": "^3.1.0",
    "puppeteer-firefox": "^0.5.0"
    ...
  },
}

chrome 扩展开启方式

chrome extensions

博客: https://github.com/zhaojunlike

退出移动版