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