Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Most Playwright setup failures come from one of four mismatches: an unsupported Node.js or operating-system version, browser binaries that were not installed for the package version, missing Linux libraries, or a network policy that blocks browser downloads. Run the checks below from your project root, then follow the branch that matches the exact error. Playwright Test is headless by default, so no visible browser window is not, by itself, a failure.

Start with a reproducible project check

Before changing anything, record your operating system, Node.js version, package manager, Playwright package version, command, and complete error text. Run commands from the directory containing package.json and use the same package manager as the existing lockfile.

  1. Check the runtime: node --version. The current official installation requirements list Node.js 22.x, 24.x, or 26.x, Windows 11 or Windows Server 2019 and later (or WSL), macOS 14 or later, and Debian 12/13 or Ubuntu 22.04/24.04/26.04 on x86-64 or arm64. Requirements can change, so verify the live page if your version is different.
  2. Confirm that @playwright/test is installed in this project rather than only globally. Inspect package.json and the lockfile, then use the matching command: npm ls @playwright/test, yarn why @playwright/test, or pnpm why @playwright/test.
  3. Install dependencies with the lockfile. For npm, use npm ci; use the equivalent frozen-lockfile option for Yarn or pnpm. Do not mix package managers during diagnosis.
  4. Check the installed CLI: npx playwright --version. If the command cannot be found, add the package to the project (for example, npm install -D @playwright/test) and retry.

For a new project, the supported starter flow is npm init playwright@latest. An existing project can add @playwright/test with its normal package manager.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install browser binaries that match the package

Installing the npm package does not install Chromium, Firefox, or WebKit automatically. Each Playwright release expects specific browser binaries, so a package update must be followed by another browser install; Microsoft states that “Each version of Playwright needs specific versions of browser binaries to operate” on its Browsers page.

  1. Install every browser referenced by your projects: npx playwright install.
  2. For a focused diagnosis, install one browser only: npx playwright install chromium, npx playwright install firefox, or npx playwright install webkit.
  3. See what is already present: npx playwright install --list.
  4. After changing the Playwright version, repeat the install command. A cached binary from another release is not a reliable substitute.
Goal Command Trade-off
Run all configured browser projects npx playwright install Largest download, but cross-browser projects have their required binaries.
Diagnose one browser npx playwright install chromium Faster and smaller; other projects remain unavailable until installed.
Use only Chromium’s default headless shell in CI npx playwright install --only-shell Reduces the install only when your configuration does not require full Chromium.

Fix Linux browser-launch errors

A browser may download successfully and still fail at launch when shared libraries or other operating-system dependencies are absent. On a supported Linux distribution, install them with:

npx playwright install --with-deps

To target one browser, use npx playwright install-deps chromium (or firefox or webkit). To inspect what the CLI would do without applying changes, use its --dry-run option. Run these commands with the privileges required by your distribution. Containers also need compatible base images and package repositories; a locally working host does not prove a minimal CI image has the same libraries.

When browser downloads fail or hang

Proxy-required networks

Playwright downloads browser archives from Microsoft’s CDN by default. If outbound traffic requires a proxy, set HTTPS_PROXY for the installation process, then retry:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
HTTPS_PROXY=http://proxy.example:8080 npx playwright install

Use your organization’s actual proxy URL and credentials policy; do not put secrets into shell history or CI logs.

Enterprise TLS interception

If Node reports self signed certificate in certificate chain, the proxy may be signing traffic with an internal certificate. Point Node at the organization’s trusted root before installing:

NODE_EXTRA_CA_CERTS=/path/to/company-root.pem npx playwright install

Do not disable TLS verification. Trust the correct certificate or have the network team provide an approved egress path.

Slow or stalled archives

For a slow connection, increase the documented download connection timeout with PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT. If your organization mirrors Playwright archives, configure PLAYWRIGHT_DOWNLOAD_HOST and the per-browser host variables described in the browser documentation. A mirror must contain binaries compatible with the Playwright version in your lockfile.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prove whether the problem is launch, discovery, or test code

Use the command-line options documented in the Command line and Running and debugging tests guides to narrow the failure:

  1. Run the normal suite: npx playwright test.
  2. Run one file: npx playwright test tests/example.spec.ts. Replace the path with a real test file.
  3. Run one configured project: npx playwright test --project=chromium. List the project names in playwright.config.
  4. Show the browser: npx playwright test tests/example.spec.ts --headed. This distinguishes a launch/display issue from a headless test failure.
  5. Use interactive UI mode: npx playwright test --ui. It exposes test steps, logs, requests, and DOM snapshots while you select a test.

Tests run in parallel by default and in headless mode, meaning no browser window opens during a normal run. A dependency project can also block dependent projects: inspect playwright.config for projects and any dependencies. A failed setup project must be fixed before the projects that depend on it can run; the behavior is described in the Projects documentation.

Make local and CI environments equivalent

Do not rely on a browser cached on your workstation or libraries installed globally. A typical clean CI sequence is:

npm ci
npx playwright install --with-deps
npx playwright test

Use the equivalent commands for Yarn or pnpm and commit the lockfile. Playwright recommends one worker in typical CI environments for stability and reproducibility; configure the worker count in your CI command or playwright.config rather than assuming a large runner should run many browsers at once. Check these differences when a test works locally but not in CI:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Node.js and Playwright versions: compare node --version, the lockfile, and npx playwright --version.
  • OS libraries and container image: run npx playwright install --with-deps on the clean agent.
  • Proxy, custom CA, firewall, and download timeout settings.
  • Whether the CI cache contains binaries for the current Playwright release.
  • Project dependencies and setup tests that run before the test you selected.
  • Worker count and resource limits such as memory, shared memory, or process quotas.

Common symptoms and precise fixes

Symptom Likely cause Fix
playwright: command not found The package is missing from the project or the command is run outside its root. Change to the directory with package.json, install @playwright/test, and use npx playwright ... or your package-manager equivalent.
Browser executable is missing Binaries were never installed, or they belong to another package version. Run npx playwright install; check with npx playwright install --list.
Executable starts then exits on Linux Required system libraries are absent. Run npx playwright install --with-deps or the browser-specific install-deps command.
Download returns certificate or proxy errors Enterprise TLS interception or restricted egress. Set NODE_EXTRA_CA_CERTS for the approved root, configure HTTPS_PROXY, or use the documented mirror variables.
Command appears to do nothing The run is headless, or test discovery found no matching files. Try --headed, --ui, a single file, and a named --project; verify test paths and patterns.
Local passes, CI fails Different runtime, dependencies, cache, network, or worker pressure. Use lockfile installation, install browsers and OS dependencies on the agent, compare versions, and start with one worker.

Keep setup reliable after it works

  • Commit and enforce the lockfile so package and browser versions do not drift unexpectedly.
  • Run the browser installation after every Playwright package update; cache only paths that are valid for the exact version and runner image.
  • Pin the CI Node.js version to one supported by the current installation documentation.
  • Keep proxy and certificate configuration in CI secrets or environment settings, not source code.
  • Use a single-browser install while diagnosing, then install all browsers required by your configured projects before the full suite.
  • Capture the full command and error, not just the final line; download, launch, discovery, and assertion failures require different fixes.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your goal is simply to obtain a clean website image or PDF rather than run browser tests, ScreenshotNeo provides a one-request screenshot API. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status.

cURL:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

See the complete option reference in the ScreenshotNeo documentation. It supports full-page lazy-image capture, CSS-selector elements, dark mode, device presets and custom viewports, retina scale, PDF paper settings and page ranges, HTML/CSS rendering, custom JavaScript and CSS, clicks, selector hiding, selector or network-idle waits, request and resource blocking, headers, cookies, user agents, authorization, timezone and geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed image links, asynchronous webhooks, up to 100 URLs per bulk call, usage data, and an OpenAPI specification. An MCP server supplies take_screenshot, get_page_info, and capture_pdf tools to 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 shots; every feature is included on every plan. Create a free ScreenshotNeo account.

Frequently Asked Questions

Why does Playwright install successfully but still fail at runtime?

The npm package and browser binaries are separate. Install the binaries for the exact package version, then add Linux system dependencies when applicable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should I reinstall every browser when only Chromium tests fail?

No. Install only Chromium while diagnosing with npx playwright install chromium; install all configured browsers before running cross-browser projects.

Is a missing browser window proof that Playwright is broken?

No. Playwright Test runs headless by default. Use --headed or --ui to observe a run.

Can I turn off TLS verification to get a download through a corporate proxy?

Do not use that shortcut. Install the organization’s trusted root and set NODE_EXTRA_CA_CERTS, or configure an approved proxy or mirror.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.