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

Hierarchy

  • Tracing

Methods

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

    Parameters

    • Optional options: {
          name?: string;
          screenshots?: boolean;
          snapshots?: boolean;
          sources?: boolean;
          title?: string;
      }
      Optional
      • Optional name?: string

        If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the tracesDir folder specified in browserType.launch([options]). To specify the final trace zip file name, you need to pass path option to tracing.stop([options]) instead.

      • Optional screenshots?: boolean

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

      • Optional snapshots?: boolean

        If this option is true tracing will

        • capture DOM snapshot on every action
        • record network activity
      • Optional sources?: boolean

        Whether to include source files for trace actions.

      • Optional title?: string

        Trace name to be shown in the Trace Viewer.

    Returns Promise<void>

  • 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([options]) and tracing.stopChunk([options]).

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

    Parameters

    • Optional options: {
          name?: string;
          title?: string;
      }
      Optional
      • Optional name?: string

        If specified, intermediate trace files are going to be saved into the files with the given name prefix inside the tracesDir folder specified in browserType.launch([options]). To specify the final trace zip file name, you need to pass path option to tracing.stopChunk([options]) instead.

      • Optional title?: string

        Trace name to be shown in the Trace Viewer.

    Returns Promise<void>

  • Stop tracing.

    Parameters

    • Optional options: {
          path?: string;
      }
      Optional
      • Optional path?: string

        Export trace into the file with the given path.

    Returns Promise<void>

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

    Parameters

    • Optional options: {
          path?: string;
      }
      Optional

    Returns Promise<void>

Generated using TypeDoc