Quick Reference
The Trace Viewer has several panels, each displaying different execution details. Use this table to find the appropriate panel for your investigation.
See Playwright trace documentation for more options.
Enable Traces
Configure Playwright to record traces:
Traces add overhead. Use
'on-first-retry' to balance debugging capability with test speed.
Stream Traces
Traces stream to TestDino during the run once@testdino/playwright is configured. Any trace Playwright records for a test, based on your trace setting above, reaches the dashboard with no separate upload step.
@testdino/playwright streams screenshots, videos, and traces by default. Pass --no-artifacts to npx tdpw test to skip them. Without a recorded trace, trace links in TestDino will not resolve, so keep trace set to 'on-first-retry' or stronger.When to Use Traces
Traces are most useful for:- Race conditions: See if an element appeared after the test tried to interact
- Timing issues: Check how long each step took
- Network failures: Inspect API requests and responses
- Complex flows: Step through multi-page interactions
Open the Trace Viewer
1
Open a test run
Navigate to the test run in TestDino
2
Click a failed test
Select the test you want to debug
3
Select the attempt tab
Choose Run, Retry 1, or Retry 2
4
Open the trace
Click View Trace or the trace viewer link
Use a Custom Trace Viewer
Point a project at your own trace viewer to open traces somewhere other than the defaulthttps://trace.playwright.dev. Every trace link in the project then opens in your viewer. This is available on Enterprise plans.
Set the URL under Project Settings → General → Trace Viewer.
A custom viewer must accept the same
?trace= parameter as the default viewer, such as a self-hosted Playwright fork that adds extra panels.
NoteThe custom viewer changes where the trace opens. Trace recording and upload are unchanged.
Navigate the Trace
Actions Panel
The left sidebar lists every action in execution order:page.gotolocator.clickexpect.toBeVisible
Timeline
The timeline at the top shows action duration. Long bars indicate slow steps. Gaps may indicate waiting or idle time.DOM Snapshot
Each action captures a DOM snapshot. Use it to see:- Whether the element existed
- What the page looked like at that moment
- If other elements were blocking the target
Network Tab
View all HTTP requests during the test:- Request URL, method, and headers
- Response status, headers, and body
- Timing breakdown (DNS, connect, SSL, wait, download)
Console Tab
Shows browser console output at each action:console.logfrom application code- JavaScript errors and warnings
- Failed resource loads
Source Tab
Displays the test code with the current action highlighted. Useful for correlating trace steps with your test file.Debug Common Failures
Element Not Found
Element Not Found
- Go to the failed action
- Check the DOM snapshot
- Look for the target element
Timeout
Timeout
- Check the action duration in the timeline
- Look at the DOM snapshot before timeout
- Check the network tab for pending requests
Assertion Failure
Assertion Failure
- Go to the failed
expectaction - Check the Call panel for expected vs actual values
- Review the DOM snapshot to see the actual state
Race Condition
Race Condition
- Compare DOM snapshots before and after the action
- Check if elements appeared or disappeared between steps
- Look at network timing to see if responses arrived late
Related
Visual Evidence
Screenshots and videos
Error Grouping
Find patterns across failures
Flaky Tests
Identify and manage flaky tests
Node.js CLI
CLI setup and options