2

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

Godtoy
2.4k 声望114 粉丝

Technology change the 'hello world'