Yes, you can use Puppeteer with Chrome extensions. Puppeteer is a Node library that provides a high-level API to control Chrome or Chromium over the DevTools Protocol. It can be used for automating tasks in the browser, generating screenshots, and crawling websites.
To use Puppeteer with Chrome extensions, you need to launch Chrome with a specific flag --disable-extensions-except
. This flag allows specific extensions to run while all other extensions are disabled.
Here's a JavaScript example:
const puppeteer = require('puppeteer');
async function run() {
const extensionPath = '/path/to/extension'; // absolute path to your extension
const browser = await puppeteer.launch({
headless: false, // extensions are allowed only in the head-full mode
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`
]
});
// your code here
}
run();
In this script, replace '/path/to/extension'
with the absolute path to your extension.
Please note that currently, Puppeteer doesn’t support extension automation capabilities. For example, you can’t click on an extension’s button or access the extension's popup.
Also, note that extensions are not available in headless mode. So, if you need to use extensions, you should run your browser in headful mode by setting headless
option to false
.
Remember, some extensions won't work if they need to sign in to work. This is because the profiles are not loaded in Puppeteer.
Lastly, ensure that the extension is compatible with the version of Chrome being used by Puppeteer. Some extensions may not work with older versions of Chrome.