Version: 1.8.0


Chromium-specific features including Tracing, service worker support, etc. You can use chromiumBrowser.startTracing([page, options]) and chromiumBrowser.stopTracing() to create a trace file which can be opened in Chrome DevTools or timeline viewer.

await browser.startTracing(page, {path: 'trace.json'});
await page.goto('');
await browser.stopTracing();

ChromiumBrowser can also be used for testing Chrome Extensions.


Extensions in Chrome / Chromium currently only work 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: [
const backgroundPage = browserContext.backgroundPages()[0];
// Test the background page as you would any other page.
await browserContext.close();


Returns the newly created browser session.

chromiumBrowser.startTracing([page, options])#

  • page <Page> Optional, if specified, tracing includes screenshots of the given page.
  • options <Object>
    • categories <Array<string>> specify custom categories to use instead of default.
    • path <string> A path to write the trace file to.
    • screenshots <boolean> captures screenshots in the trace.

Only one trace can be active at a time per browser.


Returns the buffer with trace data.