diff --git a/docs/src/extensions.md b/docs/src/extensions.md new file mode 100644 index 0000000000..406a8343bd --- /dev/null +++ b/docs/src/extensions.md @@ -0,0 +1,29 @@ +--- +id: extensions +title: "Testing extensions" +--- + +:::note +Extensions only work in Chrome / Chromium in non-headless mode. +::: + +The following is code for getting a handle to the [background page](https://developer.chrome.com/extensions/background_pages) of an extension whose source is located in `./my-extension`: + +```js +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(); +})(); +```