From your project directory, run npx playwright show-report. Playwright starts a local web server for the HTML report and opens it in your browser. If the report is in another directory, pass that directory name, for example npx playwright show-report my-report. Opening index.html directly from your file manager can fail because the report is designed to be served over HTTP.
Open the latest Playwright report
Run the command from the directory that contains your Playwright project:
npx playwright show-report
The command looks for Playwright’s default HTML-report directory, playwright-report, starts a local server, and opens the report in a browser. The report is a folder rather than a single independent web page: its scripts, data files, screenshots, traces, and other assets are loaded relative to the served directory.
If your project uses a local Playwright installation, npx resolves the version in that project. This avoids requiring a separate global Playwright installation.
#1 Best Overall
Open a report in a different folder
Pass the report directory as the command’s argument:
npx playwright show-report my-report
Use the path relative to your current directory, or provide an absolute path when the report is elsewhere:
npx playwright show-report ./artifacts/playwright-report
npx playwright show-report /absolute/path/to/playwright-report
The folder must contain the generated HTML report, including its index.html file and accompanying assets. Playwright’s HTML reporter normally writes to playwright-report, but the configured outputFolder or the PLAYWRIGHT_HTML_OUTPUT_DIR environment variable can change that location.
Choose the right command for your report location
| Where the report is | Command | What to check |
|---|---|---|
| Default project output | npx playwright show-report |
A playwright-report directory exists in the current project. |
| Custom output directory | npx playwright show-report path/to/report |
Use the directory configured by outputFolder or PLAYWRIGHT_HTML_OUTPUT_DIR. |
| Downloaded CI artifact | npx playwright show-report extracted-report |
Extract the archive first and pass the folder containing index.html. |
| ZIP supplied by Playwright | npx playwright show-report report.zip |
The ZIP must contain index.html at its top level. |
Why double-clicking index.html may not work
A file URL such as file:///home/me/project/playwright-report/index.html does not provide the same origin and HTTP behavior as a web server. Playwright’s report can use JavaScript and related assets that expect to be served together. Browser security rules can block those requests when the page is opened directly from the file system, leaving you with a blank page, missing data, or a report that never finishes loading.
npx playwright show-report supplies the missing server. It serves the complete report directory and lets the browser request index.html and its assets from one local origin.
Change the host or port
The documented defaults are host localhost and port 9323. To use a different port, add --port:
npx playwright show-report --port 9400
Then open http://localhost:9400 if your browser does not open automatically. To bind the server to a different host, use --host:
Rank #2
npx playwright show-report --host 0.0.0.0 --port 9400
Binding to 0.0.0.0 makes the server listen on the machine’s network interfaces. Do this only when you understand who can reach that machine; a test report can contain test data, URLs, error messages, and attachments. For a local review, the default localhost binding is the safer choice.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallControl whether Playwright opens the browser
The HTML reporter’s open option accepts always, never, or on-failure. The PLAYWRIGHT_HTML_OPEN environment variable can set the same behavior. For example, to generate or use a report without launching a graphical browser:
PLAYWRIGHT_HTML_OPEN=never npx playwright test
After the test run completes, open the report yourself:
npx playwright show-report
If you want the report to open only when tests fail, configure the reporter with open: 'on-failure' in your Playwright configuration. Automatic opening and serving are separate concerns: disabling automatic opening does not remove the report or prevent show-report from serving it later.
Open a report downloaded from CI
- Download the CI artifact containing the Playwright HTML report.
- Extract it to a local directory.
- Check that
index.htmlis directly inside the extracted report folder, rather than one level deeper because the archive preserved a parent directory. - Run
npx playwright show-reportwith that folder:
npx playwright show-report ./ci-artifacts/playwright-report
If the archive itself is a ZIP whose top level contains index.html, Playwright can accept the ZIP directly:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →npx playwright show-report ./ci-artifacts/playwright-report.zip
When a ZIP contains an extra enclosing directory, extract it and pass the nested directory that actually contains index.html.
Confirm that the report was generated where you expect
If show-report says it cannot find a report, first locate the output configured for the test run. Typical checks are:
- Look for
playwright-report/index.htmlin the project directory. - Inspect the Playwright configuration for the HTML reporter’s
outputFolder. - Check whether
PLAYWRIGHT_HTML_OUTPUT_DIRwas set in the shell or CI job. - Make sure the test command actually used the HTML reporter; another reporter may write no HTML directory.
- Verify that the artifact download preserved the report’s complete directory, not just an individual file.
A report generated by one test run can also be replaced by a later run. If the displayed results do not match the run you intended to inspect, remove ambiguity by placing each artifact in its own directory and passing that directory explicitly.
Troubleshoot common errors
“Cannot find report” or an empty directory
Cause: You are in the wrong working directory, the output folder was customized, or the HTML reporter did not run.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Fix: Find the directory containing index.html, then pass its path to show-report. Check the reporter configuration and the output-directory environment variable.
The browser opens a blank page
Cause: The report was opened with a file:// URL, assets are missing, or the artifact was only partially copied.
Fix: Close the file URL and run npx playwright show-report path/to/report. Confirm that the report’s JavaScript and data files are alongside index.html.
The default port is already in use
Cause: Another service is listening on port 9323.
Fix: Select an unused port, such as npx playwright show-report --port 9400, and visit the corresponding localhost URL.
Free tools Windows power users keep installed
One-click scans. No signup required.
The command does not open a browser
Cause: You are on a headless machine, automatic opening is disabled, or the environment cannot launch a graphical browser.
Rank #4
Fix: Copy the server URL printed by the command into a browser on the same machine. If the server is remote, use a secure tunnel or retrieve the artifact locally rather than exposing a test report unnecessarily.
Only part of the report appears after extraction
Cause: The CI system archived only index.html or changed the directory layout.
Fix: Re-download the complete HTML-report artifact. The report is a self-contained folder, so preserve all files and subdirectories when packaging and extracting it.
The report displays old results
Cause: You are serving a stale directory or a browser has cached assets from a previous run.
Fix: Stop the server, identify the intended artifact, start show-report against that folder, and reload the page. Keeping separate, clearly named artifact directories prevents accidental reuse.
Use a repeatable workflow for local and CI reports
- Configure the HTML reporter output directory explicitly when your project has multiple test jobs.
- Archive the entire output directory as a CI artifact.
- When reviewing it, extract the artifact and verify the location of
index.html. - Run
npx playwright show-report <directory>, choosing a non-default port if necessary. - Keep the server bound to
localhostunless another machine genuinely needs access.
This workflow preserves the report’s relative assets and avoids the unreliable file-system URL that causes many direct-opening failures.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If you need an image or PDF of a report that is already available at a public URL, ScreenshotNeo can capture that page through one request. The report must be reachable by the service; a private localhost address on your computer is not publicly accessible.
Recommended Free Tools
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://playwright.dev -o shot.webp
See the ScreenshotNeo documentation for the complete API. The same request in Python is:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://playwright.dev"}, timeout=90)
open("shot.webp", "wb").write(r.content)
And in Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://playwright.dev' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
- Cookie banners, newsletter popups, and chat widgets are removed before the shot.
- Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed; response headers identify the page verdict and billing status.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for Claude, Cursor, and other MCP clients. - The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.
Create a free ScreenshotNeo account to try it without a card.
Frequently asked questions
Can I keep the report server running while I inspect traces?
Yes. Leave the terminal process running and use the browser tab; stop it with the terminal’s interrupt command when finished. The server exists only while that process is active.
Does changing the port change the report files?
No. The port only changes where the local server listens. It does not regenerate, modify, or relocate the report directory.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What should I give a teammate who needs to review the report?
Share the complete CI artifact or a securely hosted report, not just index.html. The supporting files are required for the page to render correctly.
Why does a report from another machine not load when I copy its URL?
localhost always refers to the machine running the browser. A URL printed on a CI runner or another developer’s computer is not automatically reachable from your computer; download the artifact or arrange secure network access to that server.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

