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])
- tracing.startChunk([options])
- tracing.stop([options])
- tracing.stopChunk([options])
tracing.start([options])
Added in: v1.12options?
<Object>name?
<string> If specified, the trace is going to be saved into the file with the given name inside thetracesDir
folder specified in browserType.launch([options]).#screenshots?
<boolean> Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview.#snapshots?
<boolean> If this option is true tracing will#- capture DOM snapshot on every action
- record network activity
sources?
<boolean> Whether to include source files for trace actions. Added in: v1.17#title?
<string> Trace name to be shown in the Trace Viewer. Added in: v1.17#
- 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([options])
Added in: v1.15Start 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]).
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' });
tracing.stop([options])
Added in: v1.12Stop tracing.
tracing.stopChunk([options])
Added in: v1.15options?
<Object>path?
<string> Export trace collected since the last tracing.startChunk([options]) call 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.