Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
If Playwright says a browser executable is missing, run npx playwright install from your project directory, then rerun the test. If the browser is present but will not launch on Linux, install its system dependencies with npx playwright install --with-deps. When those commands do not fix it, check that installation and tests use the same Playwright version, user, browser-cache path, container, and network settings.
What “browser executable not found” means
Installing the Playwright package and installing the browser binaries it uses are separate practical steps. Each Playwright release expects specific browser builds, so installing or updating the package does not guarantee that the corresponding browsers are available. Playwright’s browser installation guide directs users to install them with the Playwright CLI.
First identify which browser your test project uses: Chromium, Firefox, or WebKit. Install that browser, or install the defaults if you are unsure. Do not start by substituting a random browser executable path: Playwright’s supported browser builds are tied to its releases, and compatibility with an arbitrary system browser is not guaranteed.
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 →Install the browser Playwright expects
- Open a terminal in the project directory. This helps ensure
npxinvokes the project’s installed Playwright CLI rather than an unrelated global installation. - Check the Playwright version:
npx playwright --version. This is a documented way to inspect the installed version. - Install the default browsers:
npx playwright install. - Or install only the browser your tests need:
npx playwright install chromium,npx playwright install firefox, ornpx playwright install webkit. - Rerun the test in the same environment where you installed the browser.
The CLI also provides npx playwright install-deps [browser...] to install system dependencies separately, and --with-deps to combine browser installation with dependency installation. See the CLI reference for the command syntax.
#1 Best Overall
Distinguish a missing browser from missing Linux libraries
A missing executable means Playwright cannot find the browser binary it expects. A Linux dependency problem is different: the browser may be installed, but the operating system lacks libraries needed to start it. If the error occurs on a Linux host, CI runner, or container, install the browser and its system dependencies together:
npx playwright install --with-deps
If you only need dependencies for one browser, use, for example, npx playwright install-deps chromium. The exact package requirements depend on the operating system and browser; use Playwright’s documented installer rather than guessing at library names. The browser guide and CI guide cover these installation approaches.
Check where Playwright stores browsers
By default, Playwright stores browser binaries in an OS-specific cache. If installation and test execution happen as different users, in different jobs, or in different containers, the runtime may not see the install even when the download succeeded.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →| Operating system | Default browser cache path |
|---|---|
| Windows | %USERPROFILE%AppDataLocalms-playwright |
| macOS | ~/Library/Caches/ms-playwright |
| Linux | ~/.cache/ms-playwright |
Playwright documents PLAYWRIGHT_BROWSERS_PATH for using a custom or shared browser location. Set it consistently for both the installation command and the process that runs tests. For example, in a POSIX shell:
Rank #2
export PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-browsers
npx playwright install chromium
npx playwright test
The directory must be accessible to the installing and runtime users. On Windows, set the environment variable using your shell or CI configuration, then run both commands in that environment. A different value, user home, or container filesystem can make a valid installation appear missing.
Setting PLAYWRIGHT_BROWSERS_PATH=0 selects a hermetic location under playwright-core, rather than the usual shared cache. Choose this deliberately: the install and test process still need to use the same compatible package and location.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Repair CI and Docker installations
Use a reproducible CI sequence
For a Node project in Linux CI, Playwright documents this general sequence:
Rank #3
npm cinpx playwright install --with-depsnpx playwright test
Install browsers after the project dependencies are installed so the CLI corresponds to the project’s Playwright version. If the job runs tests in a later step, job, or container, ensure the installed browsers are available in that execution environment too. The Playwright CI guide provides provider-specific examples; check current provider documentation before copying time-sensitive workflow or runner configuration.
Keep a Playwright Docker image aligned with the project
If you run tests in a Playwright Docker image, align the image’s Playwright version with the version in your project and tests. The Docker documentation warns that a mismatch can prevent Playwright from locating browser executables. Install and run tests in the intended image/environment, rather than installing browsers in one image and executing tests in another. See Playwright’s Docker guide.
Be cautious with browser caching
Playwright’s CI guidance generally does not recommend caching browser binaries: restoring a cache can take about as long as downloading browsers, and Linux system dependencies are not cacheable with browser files. If you do cache the binaries, key the cache to the Playwright version so a package update does not restore incompatible browser builds. Installing only browsers your suite actually uses can also reduce unnecessary downloads and disk use; see Playwright’s best practices.
Fix browser downloads behind a proxy or restricted network
A failed or incomplete download can look like an installation problem. Playwright’s default browser download source is Microsoft’s CDN. If your environment requires a corporate proxy, custom certificate authority, longer connection timeout, or internal artifact repository, configure the documented download settings instead of changing the executable path.
- Proxy: set
HTTPS_PROXYin the environment runningnpx playwright install. - Intercepted TLS certificate: if the connection fails with a self-signed certificate-chain error, configure
NODE_EXTRA_CA_CERTSto point to the trusted root certificate required by your organization. - Slow archive connection: set
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUTto an appropriate timeout for your network. - Internal artifact host: use
PLAYWRIGHT_DOWNLOAD_HOST, or the documented per-browser download-host variables, to direct downloads to an approved mirror.
Apply these variables to the install process itself and follow your organization’s security policy for proxy and certificate configuration. Exact settings and examples are in the browser installation guide.
Common errors and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
| Executable missing immediately after installing or updating Playwright | The browser binary for this Playwright release has not been installed. | From the project directory, run npx playwright install, or name the required browser. |
| Install succeeds, but tests still report a missing executable | Install and test processes use different users, cache paths, environments, or containers. | Compare PLAYWRIGHT_BROWSERS_PATH, the OS user and home directory, and the actual runtime/container. Install and test in the same intended environment. |
| Browser binary is found but fails to launch on Linux | System libraries or other OS dependencies are absent. | Run npx playwright install --with-deps, or install dependencies for the specific browser. |
| Problem appears only in Docker | The image and project use different Playwright versions, or installation happened outside the image used for tests. | Align versions and install/run within the intended image. |
| Browser download fails or stalls | Proxy, certificate trust, timeout, or restricted CDN access is blocking the download. | Configure the documented proxy, CA, timeout, or internal download host for the install process. |
| Works locally but not in a new CI job | The runner does not retain the local browser cache, or the browser was not installed in that job. | Add browser installation to CI setup, or intentionally configure an accessible shared path. Do not assume a developer-machine cache exists on the runner. |
Less common browser-cache cleanup case
Playwright may remove browser versions that are no longer required by installed clients. If you have evidence that cleanup is removing a version still needed by a managed setup, the browser guide documents PLAYWRIGHT_SKIP_BROWSER_GC=1 and the CLI option --no-remove to disable removal of unused browser versions. These are targeted controls for a cleanup issue, not the first fix for an ordinary missing-browser error.
Why installing Chrome or Edge usually is not the fix
Playwright generally uses its own supported Chromium build. Installing Google Chrome or Microsoft Edge does not automatically install the matching Playwright-managed browser. The branded browsers are a separate option, and pointing Playwright at an arbitrary system executable is not a reliable substitute because compatibility is not guaranteed. Start with Playwright’s own browser installer unless your project intentionally configures a branded browser.
Or skip the browser setup
If you only need a screenshot of a page—not a Playwright test, browser automation flow, or custom interaction—you can use ScreenshotNeo, a website screenshot API and MCP server. A single request returns an image or PDF, without setting up Playwright browsers on your machine.
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}`);
Recommended Free Tools
Replace the example URL with the page you need and supply your API key. The ScreenshotNeo API documentation covers the request and available options. Cookie banners, newsletter popups, and chat widgets are removed before capture; those steps can be disabled. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and the response identifies the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients.
The free plan includes 1,000 screenshots a month with no card required; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo.
Frequently Asked Questions
Do I need to reinstall browsers every time I update Playwright?
A Playwright update can require new browser binaries because each release expects specific builds. Run the CLI install command after updating when the required browser is unavailable.
Can I use a system-installed Chromium executable instead?
You can configure a browser executable in some setups, but compatibility with an arbitrary system browser is not guaranteed. Playwright’s managed browser build is the safer default.
Should I cache Playwright browsers in CI?
Playwright’s CI guidance generally does not recommend browser caching because restoring the cache can take about as long as downloading it, and Linux system dependencies are not cacheable with browser binaries.
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.

