Chrome Extensions
note
Extensions only work in Chrome / Chromium in non-headless mode.
The following is code for getting a handle to the background page of an extension whose source is located in ./my-extension
:
const { chromium } = require('playwright');
(async () => { const pathToExtension = require('path').join(__dirname, 'my-extension'); const userDataDir = '/tmp/test-user-data-dir'; const browserContext = await chromium.launchPersistentContext(userDataDir,{ headless: false, args: [ `--disable-extensions-except=${pathToExtension}`, `--load-extension=${pathToExtension}` ] }); const backgroundPage = browserContext.backgroundPages()[0]; // Test the background page as you would any other page. await browserContext.close();})();