Skip to main content

Tracing

API for collecting and saving Playwright traces. Playwright traces can be opened in Trace Viewer after Playwright script runs.

Start recording a trace before performing actions. At the end, stop tracing and save it to a file.

const browser = await chromium.launch();
const context = await browser.newContext();
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');
await context.tracing.stop({ path: 'trace.zip' });

Methods

start

Added in: v1.12tracing.start

Start tracing.

Usage

await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');
await context.tracing.stop({ path: 'trace.zip' });

Arguments

  • options Object (optional)
    • name string (optional)#

      If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in browserType.launch().

    • screenshots boolean (optional)#

      Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.

    • snapshots boolean (optional)#

      If this option is true tracing will

      • capture DOM snapshot on every action
      • record network activity
    • sources boolean (optional) Added in: v1.17#

      Whether to include source files for trace actions.

    • title string (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.


startChunk

Added in: v1.15tracing.startChunk

Start a new trace chunk. If you'd like to record multiple traces on the same BrowserContext, use tracing.start() once, and then create multiple trace chunks with tracing.startChunk() and tracing.stopChunk().

Usage

await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
await page.goto('https://playwright.dev');

await context.tracing.startChunk();
await page.getByText('Get Started').click();
// Everything between startChunk and stopChunk will be recorded in the trace.
await context.tracing.stopChunk({ path: 'trace1.zip' });

await context.tracing.startChunk();
await page.goto('http://example.com');
// Save a second trace file with different actions.
await context.tracing.stopChunk({ path: 'trace2.zip' });

Arguments

  • options Object (optional)
    • name string (optional) Added in: v1.32#

      If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in browserType.launch().

    • title string (optional) Added in: v1.17#

      Trace name to be shown in the Trace Viewer.


stop

Added in: v1.12tracing.stop

Stop tracing.

Usage

await tracing.stop();
await tracing.stop(options);

Arguments

  • options Object (optional)
    • path string (optional)#

      Export trace into the file with the given path.


stopChunk

Added in: v1.15tracing.stopChunk

Stop the trace chunk. See tracing.startChunk() for more details about multiple trace chunks.

Usage

await tracing.stopChunk();
await tracing.stopChunk(options);

Arguments