PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated 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 matchMost Playwright “browser executable not found” errors are fixed by installing the browser binaries that match your installed Playwright version: run npx playwright install from the project directory. On Linux CI, use npx playwright install --with-deps. If installation succeeds but tests still fail, check that the test process uses the same Playwright version, user, container, and browser-cache path as the install process.
What the error actually means
Installing the Playwright npm package and installing its browser binaries are separate operations. The package provides the API and test runner; the browser installation downloads Playwright-managed builds of Chromium, Firefox and WebKit. Each Playwright release expects specific browser builds, so upgrading the package can require another browser installation.
The message may mention an executable, a browser revision, or a path under ms-playwright. That normally means one of four things:
- The required browser was never downloaded.
- The browser was installed for a different Playwright version.
- The install and test run use different users, containers or
PLAYWRIGHT_BROWSERS_PATHvalues. - The browser exists, but Linux system libraries or a download/network policy prevents it from launching.
1. Install the browser from the project directory
Run these commands where your project’s package.json is located:
Recommended Free Tools
#1 Best Overall
-
Check which Playwright CLI your project resolves:
npx playwright --version -
Install all default Playwright browsers:
npx playwright install -
Or install only the browser your tests use:
npx playwright install chromiumReplace
chromiumwithfirefoxorwebkitwhen appropriate. -
Run the tests again:
npx playwright test
Use the project-local CLI through npx rather than an unrelated globally installed Playwright. If your lockfile changed, install dependencies first with your package manager, then repeat the browser install so the downloaded revision matches the package actually running your tests.
Install only what CI needs
Installing one browser is usually preferable in continuous integration when the test suite does not cover all three engines. It reduces downloads and disk use while keeping the revision tied to the project’s Playwright package.
2. Distinguish a missing executable from missing Linux dependencies
A genuinely absent executable is different from an executable that cannot start because shared libraries, fonts or other operating-system dependencies are missing. On Linux, install both the browser and its documented dependencies in one command:
npx playwright install --with-deps
For a single browser, you can install its dependencies separately:
npx playwright install-deps chromium
Use the combined command on a clean CI agent or container image. If the error changes from “executable not found” to a missing library, sandbox, display or launch error, the browser is now present and the remaining problem is the host environment.
Rank #2
3. Verify the browser-cache path and execution identity
Playwright stores downloaded browsers in an operating-system-specific cache by default:
| Operating system | Default cache |
|---|---|
| Windows | %USERPROFILE%AppDataLocalms-playwright |
| macOS | ~/Library/Caches/ms-playwright |
| Linux | ~/.cache/ms-playwright |
The path is per user. A common failure pattern is installing as root during a Docker build, then running tests as an unprivileged user; the test process looks in that user’s cache and reports that the executable is absent. The same mismatch occurs when one CI job installs browsers and another job runs tests without receiving the cache.
Use one shared or hermetic location
Set PLAYWRIGHT_BROWSERS_PATH to a directory that both installation and test commands can read:
export PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-browsers
npx playwright install chromium
npx playwright test
On Windows PowerShell:
$env:PLAYWRIGHT_BROWSERS_PATH = "C:playwright-browsers"
npx playwright install chromium
npx playwright test
To keep browsers in a project-local, hermetic location under playwright-core, set the variable to 0 for both operations:
PLAYWRIGHT_BROWSERS_PATH=0 npx playwright install chromium
PLAYWRIGHT_BROWSERS_PATH=0 npx playwright test
Do not set the variable only for installation. The runtime must see the same value and have permission to read the directory.
Check browser cleanup
Playwright can remove browser versions no longer required by installed clients. In a managed environment where another job still needs an older revision, set PLAYWRIGHT_SKIP_BROWSER_GC=1 or use the CLI’s --no-remove option. This is a targeted measure for cleanup-related failures, not the normal first fix.
Rank #3
4. Repair Docker and CI configurations
A reliable Linux CI sequence is:
npm ci
npx playwright install --with-deps
npx playwright test
Keep all three commands in the same job, image and user context. If your pipeline splits installation and testing into separate jobs, explicitly transfer the browser directory and preserve the exact Playwright version; otherwise the second job may have neither the files nor the matching revision.
Docker image version alignment
The Playwright Docker image contains browsers and operating-system dependencies. The Playwright version in the image must match the version used by your project and tests. If they differ, Playwright may look for a browser revision that is not in the image and report that it cannot locate the executable. Align the image tag and the package version, or install the project’s browsers inside the image:
npm ci
npx playwright install --with-deps
npx playwright test
Run installation and tests in the intended final container, not only in a temporary build stage whose filesystem or user is absent at runtime.
Browser caching in CI
Playwright’s CI guidance generally does not recommend caching browser binaries: restoring a cache can take about as long as downloading, and Linux operating-system dependencies cannot be cached as browser files. If your team does cache them, include the Playwright package version in the cache key. A cache created for one revision can otherwise produce the same “not found” or incompatible-browser symptoms after an upgrade.
Free tools Windows power users keep installed
One-click scans. No signup required.
5. Fix downloads blocked by a proxy or certificate policy
If npx playwright install fails before a browser appears, the executable error is a consequence of an incomplete download. Configure the documented environment variables for your network rather than hard-coding a random executable path.
Corporate HTTPS proxy
HTTPS_PROXY=http://proxy.example:8080 npx playwright install chromium
Use the proxy format and credentials required by your organization. Do not print credentials in CI logs.
Intercepting certificate authority
A self-signed certificate-chain error usually means your proxy re-signs HTTPS traffic. Point Node.js at the organization’s trusted root certificate:
NODE_EXTRA_CA_CERTS=/path/to/company-root.pem npx playwright install chromium
Install the certificate through your approved secret or image mechanism and verify its file permissions.
Slow connections and internal mirrors
Increase the download connection timeout when archives are slow:
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000 npx playwright install chromium
For an internal artifact repository, use PLAYWRIGHT_DOWNLOAD_HOST. Per-browser download-host variables are also available when different browsers use different mirrors. The mirror must provide the browser archives expected by the Playwright version in your project.
6. Avoid fixes that create a different problem
Installing Chrome or Edge is not the default solution
Playwright generally uses its own supported Chromium build. Installing branded Chrome or Edge does not install the Playwright-managed revision that the package requests. Branded browsers are a separate, deliberate configuration choice.
Do not point at an arbitrary system executable
Hard-coding a system browser path can bypass the missing-file message but introduce compatibility differences. Use Playwright’s downloaded browser unless you specifically need a branded browser and have verified that your project supports that setup.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errors7. A diagnostic decision tree
- Does
npx playwright --versionrun? If not, fix the npm installation, lockfile or working directory first. - Does
npx playwright install chromiumcomplete? If not, investigate proxy, certificate, timeout, permissions or artifact-host settings. - Does the error name a Linux library or sandbox? Run
npx playwright install --with-depson the Linux agent. - Does installation complete but the executable remain absent? Compare the install and test users, containers, environment variables and cache paths.
- Did Playwright or the Docker image recently change? Align versions and rerun installation; an update can require new browser binaries.
- Does only one CI job fail? Check whether that job receives the browser directory and uses the same operating-system image as the installation job.
8. Common symptoms and precise fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Executable path does not exist immediately after npm install | Browsers were not downloaded | Run npx playwright install or install the required browser explicitly. |
| Works locally, fails in Linux CI | Missing OS dependencies or a different cache/user | Use npx playwright install --with-deps and verify PLAYWRIGHT_BROWSERS_PATH. |
| Works in one Docker stage, fails in the final stage | Browser files were not copied, or users differ | Install in the final image or transfer the cache with matching permissions. |
| Download fails with certificate-chain errors | HTTPS interception by a corporate proxy | Set NODE_EXTRA_CA_CERTS to the approved root certificate. |
| Download hangs or times out | Slow route to the default CDN | Configure HTTPS_PROXY, increase PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT, or use an internal download host. |
| Failure starts after a Playwright upgrade | New package requires different browser binaries | Run the install command again with the upgraded project version. |
| Old browser disappears from a shared machine | Browser garbage collection removed an unused revision | Review clients and use PLAYWRIGHT_SKIP_BROWSER_GC=1 or --no-remove only when required. |
Or skip the browser setup
ScreenshotNeo provides a website screenshot API and MCP server when your goal is a rendered image or PDF rather than Playwright test control. One GET request returns PNG, JPEG, WebP or PDF. Before capture it accepts cookie/consent banners and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be disabled. Bot checks, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server exposes take_screenshot, get_page_info and capture_pdf to Claude, Cursor and other MCP clients.
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 ScreenshotNeo documentation for options such as full-page capture, selectors, device and retina settings, custom CSS or JavaScript, waits, request blocking, cookies, headers, geolocation, PDFs, signed links, asynchronous jobs and bulk capture. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.
FAQ
Do I need to install all three browsers?
No. Install only the engine covered by your tests, such as npx playwright install chromium. Install all browsers when the suite runs projects for Chromium, Firefox and WebKit.
Why does reinstalling npm packages not fix the error?
Package installation and browser download are separate. Reinstall the browser binaries with the Playwright CLI after confirming the project version.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Can I share one browser cache between projects?
Yes, provided the projects can read the directory and you manage revisions carefully. Set the same PLAYWRIGHT_BROWSERS_PATH during installation and test execution, and key any CI cache by Playwright version.
Is a Playwright Docker image mandatory?
No. You can install browsers and Linux dependencies on your own agent. The image is an alternative that packages a compatible environment; its Playwright version must still match your project.
The Bottom Line
Start with the project-local install command, then address Linux dependencies, cache identity, version alignment and network policy in that order. The executable path is usually the symptom; the real fix is making the browser revision available in the same environment that runs your tests.
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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →

