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