Skip to main content
Version: 1.15

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' });

tracing.start([options])#

  • options <Object>
    • name <string> If specified, the trace is going to be saved into the file with the given name inside the tracesDir folder specified in browserType.launch([options]).#
    • screenshots <boolean> Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.#
    • snapshots <boolean> Whether to capture DOM snapshot on every action.#
  • returns: <Promise<void>>#

Start tracing.

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' });

tracing.startChunk()#

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

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.click('text=Get Started');// 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' });

tracing.stop([options])#

Stop tracing.

tracing.stopChunk([options])#

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