playwright/docs/src/api/class-chromiumbrowser.md
2021-01-12 12:14:27 -08:00

2.2 KiB

class: ChromiumBrowser

  • langs: js
  • extends: [Browser]

Chromium-specific features including Tracing, service worker support, etc. You can use [method: ChromiumBrowser.startTracing] and [method: 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('https://www.google.com');
await browser.stopTracing();

[ChromiumBrowser] can also be used for testing Chrome Extensions.

:::note 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: [
      `--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();
})();

async method: ChromiumBrowser.newBrowserCDPSession

  • returns: <[CDPSession]>

Returns the newly created browser session.

async method: ChromiumBrowser.startTracing

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

param: ChromiumBrowser.startTracing.page

  • page <[Page]>

Optional, if specified, tracing includes screenshots of the given page.

option: ChromiumBrowser.startTracing.path

  • path <[path]>

A path to write the trace file to.

option: ChromiumBrowser.startTracing.screenshots

  • screenshots <[boolean]>

captures screenshots in the trace.

option: ChromiumBrowser.startTracing.categories

  • categories <[Array]<[string]>>

specify custom categories to use instead of default.

async method: ChromiumBrowser.stopTracing

  • returns: <[Buffer]>

Returns the buffer with trace data.