If Playwright will not open a browser, match the fix to the exact symptom: an “executable doesn’t exist” error usually points to missing or mismatched browser binaries; a browser process that exits may be missing Linux dependencies or running in an incompatible environment; and a browser that opens without a visible window may simply be headless, Playwright’s default. Start with the complete error, your Playwright version, browser engine, operating system, and whether the run is local, in CI, or in Docker. There is no single fix for every launch failure.
First identify what “won’t open” means
Before changing your setup, separate a browser launch failure from a problem that occurs after launch. A test assertion failure, a page that fails to navigate, or an empty page is not necessarily evidence that the browser process failed to start. Read the first complete error and, where possible, the browser process output.
| What you see | Likely direction |
|---|---|
| “Executable doesn’t exist” or a missing executable path | Install the browser binary for the Playwright version and engine your project uses; check whether the install and run steps use the same browser cache path. |
| A shared library or dependency error on Linux | Install the operating-system dependencies required by the browser. |
| “Failed to launch browser,” followed by a process exit | Inspect browser launch logs, then check dependencies, versions, and environment compatibility. |
| The test runs but no desktop window appears | Check whether the run is headless. Headless mode is the default; headed mode requires a display on Linux CI. |
Record the output of npx playwright --version, the engine named in the error (Chromium, Firefox, or WebKit), your OS, and whether the command runs on your desktop, in CI, inside Docker, or through WSL or another remote environment. These details narrow the problem far more than repeatedly reinstalling packages.
Fix a missing or mismatched browser executable
Installing the Playwright package does not mean the browser binary it expects is present. Playwright releases are associated with specific browser binary versions. An already installed Chrome, Firefox, or Safari on the computer is not a reliable substitute for the browser build Playwright expects.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →#1 Best Overall
- From the project directory, check the installed Playwright version with
npx playwright --version. - Install the default browser binaries with
npx playwright install, or install only the engine your project requests:npx playwright install chromium,npx playwright install firefox, ornpx playwright install webkit. - If you recently updated Playwright, install the browser binaries again so they match the package release:
npx playwright install. - For a test-runner setup or update that also needs Linux dependencies, use
npx playwright install --with-deps; you can specify an engine, for examplenpx playwright install --with-deps chromium. - Use
npx playwright install --listto see browser installations Playwright can find.
Use the project’s package manager and the Playwright version actually installed in that project. Installing a different global version, or installing browsers under a different account or cache location, can leave the test process unable to find the expected executable.
Install Linux system dependencies when the binary is present but will not start
A browser executable can exist and still exit immediately if the Linux environment lacks libraries it needs. Install the dependencies with npx playwright install-deps, or request dependencies for just one engine, such as npx playwright install-deps chromium. To install Chromium and its dependencies together, use npx playwright install --with-deps chromium.
Some restricted environments require elevated privileges for the operating system’s package manager. Proxy settings may also need to be available to the install command. Follow Playwright’s browser installation guidance for the OS and Playwright release in use; do not assume a dependency list copied from another Linux distribution applies to your machine.
Make the browser visible, if that is what you need
Playwright launches headless by default, which means the browser runs without displaying a desktop window. That is normal for automated tests and does not by itself indicate a failed launch.
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 matchPC 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 & 11Rank #2
Show a window from a local script
For Playwright’s JavaScript library, pass headless: false to the browser type’s launch() call. This minimal Chromium example can be run from a project that has the playwright package installed:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com');
// Keep the script alive while you inspect the visible window.
await page.waitForTimeout(5000);
await browser.close();
})();
If you use Playwright Test rather than a standalone script, configure the test project for headed execution using the configuration supported by your installed version, or run its headed mode. A headed run still needs a display server where the tests execute.
Run headed tests on Linux CI
A Linux CI worker generally has no desktop display by default. If headed execution is necessary, install Xvfb and run the test command through it, for example xvfb-run npx playwright test. If you only need automated browser behavior and do not need to watch a window, keep the run headless instead of adding a display server.
Read the launch logs instead of guessing
For CI launch errors, Playwright recommends enabling browser-process debugging output. Run:
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
DEBUG=pw:browser npx playwright test
Inspect the launch output for the first concrete failure: a missing file, unavailable library, permission issue, or process exit can lead to different remedies. Preserve the full error and relevant log lines when comparing local and CI runs. If the browser starts successfully and the failure occurs later during navigation or an assertion, troubleshoot that later stage rather than reinstalling the browser.
Check Docker image and Linux distribution compatibility
In Docker, the Playwright package version in the project must match the version used by the Playwright container image. A mismatch can make the browser executable unavailable even when the image contains browser files. Check the project dependency and image tag together, and ensure the environment includes the browsers and system dependencies required by the selected engine.
Playwright’s official Docker guidance states that its Firefox and WebKit browser builds target glibc; Alpine Linux and other musl-based distributions are unsupported for those builds. If you need Firefox or WebKit, use a supported base image rather than trying to work around the libc mismatch. Docker image tags and support can change, so verify the current official Docker guidance before changing a production image.
Check proxy, certificate, and browser-cache settings
If browser installation is incomplete, the download environment may be the cause. Playwright documents HTTPS_PROXY for proxy access and NODE_EXTRA_CA_CERTS for a trusted root certificate when a corporate HTTPS proxy intercepts connections and causes a self-signed certificate-chain error.
Rank #4
Playwright also supports setting PLAYWRIGHT_BROWSERS_PATH to use a nondefault browser storage location. Set it consistently when installing browsers and when running tests. If the install step writes to one path but the test process looks in another, Playwright can report that the executable is missing even though browser files exist elsewhere.
Default browser cache directories vary by operating system. Use npx playwright install --list to inspect installations Playwright recognizes, and check the browser guide for the default path on your OS. In CI, also ensure the install and test steps run as the same user or share the configured browser directory.
Verify runtime and operating-system requirements
Playwright’s Node.js and operating-system requirements are release-sensitive. If the project uses an older runtime or OS, check the official installation requirements for the exact Playwright version installed rather than relying on requirements listed for a newer release. Confirm the supported browser engine and platform combination as well, especially in containers and managed CI images.
Common errors and the next step
- Executable does not exist: run
npx playwright installfor the project version and requested engine; check the cache path and install/runtime user if it still fails. - Browser process exits on Linux: inspect the launch output and install dependencies with
npx playwright install-depsor the browser-specific variant. - No visible window: confirm whether the run is headless. Set
headless: falseonly when you need a window, and provide a display such as Xvfb on Linux CI. - Works locally but not in Docker: align the package and image versions, confirm the image includes the browser and system dependencies, and check the base distribution against the engine’s support.
- Browser download fails behind a proxy: configure
HTTPS_PROXY; if the proxy’s certificate chain is not trusted, configureNODE_EXTRA_CA_CERTSas documented for your environment. - Browser seems installed but is still “missing”: compare install-time and runtime
PLAYWRIGHT_BROWSERS_PATH, account/user, andnpx playwright install --listoutput.
When you need screenshots but not a local browser setup
If your goal is specifically to capture website screenshots or PDFs rather than run Playwright tests or interact with a full browser session, a screenshot API can avoid managing browser binaries and OS dependencies yourself. ScreenshotNeo is a website screenshot API and MCP server for developers; it is an alternative for capture work, not a fix for a broken Playwright installation.
Best Value
Or skip the browser setup
Make a GET request with the target URL and an API key to get an image or PDF. For example, this cURL command saves a WebP screenshot:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie and consent banners are accepted and removed before capture, along with supported newsletter popups and chat widgets; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots.
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Keep the fix specific to the failure
Use the error message to choose the next check: install or align browser binaries for a missing executable, install OS dependencies for a Linux startup failure, configure a display for headed CI, and align the Playwright package, browser image, and platform in Docker. When the process still exits, the browser debug log is more useful than treating every failure as an installation problem.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsFrequently Asked Questions
Does Playwright use Chrome already installed on my computer?
Do not assume so. Playwright expects browser binaries associated with its release; install the browser build required by the project.
Can I use Playwright in a container without a visible display?
Yes. Headless operation is the default. A display server is relevant when you specifically want headed execution.
Does a screenshot API replace Playwright for browser testing?
No. A screenshot API can handle screenshot or PDF capture without your own browser setup, but it is not a replacement for Playwright’s test runner or browser automation.
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.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.

