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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. From the project directory, check the installed Playwright version with npx playwright --version.
  2. 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, or npx playwright install webkit.
  3. If you recently updated Playwright, install the browser binaries again so they match the package release: npx playwright install.
  4. For a test-runner setup or update that also needs Linux dependencies, use npx playwright install --with-deps; you can specify an engine, for example npx playwright install --with-deps chromium.
  5. Use npx playwright install --list to 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.

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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

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

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 install for 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-deps or the browser-specific variant.
  • No visible window: confirm whether the run is headless. Set headless: false only 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, configure NODE_EXTRA_CA_CERTS as documented for your environment.
  • Browser seems installed but is still “missing”: compare install-time and runtime PLAYWRIGHT_BROWSERS_PATH, account/user, and npx playwright install --list output.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

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

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.

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

Frequently 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.

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.

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