Puppeteer’s supported-browser table is the place to check which Chrome for Testing or Firefox build matches your Puppeteer release. The current documentation snapshot lists Puppeteer v25.12.0 with Chrome for Testing 154.0.8037.57 and Firefox 156.0.1; those values can change, so consult the live supported browsers table when installing or upgrading.
How to read Puppeteer’s browser-version mapping
The mapping is release-specific: find the Puppeteer version installed in your project and use the browser version listed beside it. If your exact Puppeteer version is absent, Puppeteer’s documentation says to use the browser version for the immediately prior Puppeteer version listed in the table. Treat this as a documented fallback, not as a claim that every browser build will work interchangeably.
As an Amazon Associate I earn from qualifying purchases.
At the current documentation snapshot, the latest row cited here is:
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minute| Puppeteer release | Chrome | Firefox |
|---|---|---|
| v25.12.0 | Chrome for Testing 154.0.8037.57 | Firefox 156.0.1 |
These are version values shown in Puppeteer’s live documentation snapshot, not permanent compatibility guarantees. Verify the table again against your installed or intended release.
#1 Best Overall
Why versions are tied together
Puppeteer says each release is tightly bundled with a browser release to preserve compatibility with the underlying automation protocols: Chrome DevTools Protocol (CDP) and WebDriver BiDi. Browser implementations and protocol behavior can change, so using a different browser version can cause unexpected breakage. This is Puppeteer’s stated compatibility rationale, not an independent benchmark. See the project’s FAQ.
Chrome and Firefox use different defaults
Puppeteer uses CDP by default for Chrome and WebDriver BiDi by default for Firefox. Both browser families are supported from Puppeteer v23.0.0 onward. Support history matters when working with older releases: Puppeteer began downloading Chrome for Testing with v20.0.0; stable Firefox-release support began with v23.0.0, while earlier supported Firefox builds were Nightly. The supported-browser table records the relevant release history.
Rank #2
Use the browser Puppeteer downloads, or pin one explicitly
For the least ambiguous setup, use the Chrome for Testing version downloaded by Puppeteer. Its launch documentation says Puppeteer works best with that default download, and its browser-management documentation says its tested and guaranteed binaries are Chrome for Testing builds. A system-installed Chrome or Firefox may be usable, but check the mapping and test your own automation in the actual deployment environment; compatibility is not established merely because the browser launches.
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 matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallInstall a specific Chrome for Testing build
The @puppeteer/browsers CLI can install a specific Chrome for Testing version. Install the CLI package if needed, then run:
Rank #3
npx @puppeteer/browsers install [email protected]
To install the latest build for a milestone or channel instead, the CLI documents forms such as chrome@stable and chrome@beta. A moving channel is convenient, but it is less reproducible than a fixed version. Check the current browser-management documentation for supported CLI syntax and examples.
Keep the runtime and deployment platform in view
Browser compatibility is only one axis. The current Puppeteer system requirements documentation lists Node.js 22.12 or later and describes supported operating systems and architectures. Confirm those requirements separately for the Puppeteer release and environment you deploy; a correct browser mapping does not override a runtime or platform mismatch. See system requirements.
Make a reproducible version choice
- Identify the installed Puppeteer release. Check your package manifest and lockfile so the version you use is explicit.
- Look up that release. Use the current supported-browser table; if the exact release is missing, use the row for the immediately prior listed release as Puppeteer directs.
- Choose the browser family and protocol deliberately. Chrome uses CDP by default; Firefox uses WebDriver BiDi by default. Do not assume a test against one family validates the other.
- Pin the browser when repeatability matters. Use a specific Chrome for Testing build rather than a moving channel, and keep the browser version aligned with the Puppeteer mapping.
- Validate the deployment separately. Check Node.js, operating system, and architecture requirements, then run the automation in the same kind of environment used in production.
When the browser binary is missing after installation
Puppeteer normally downloads Chrome for Testing during installation and, since v21.6.0, also downloads a chrome-headless-shell binary. Browser downloads can be controlled through configuration. Some modern package managers block install scripts by default, which can prevent the expected binary from being fetched. Puppeteer’s installation documentation explains download behavior and configuration; check whether install scripts ran and whether the configured browser cache or download path is available.
Troubleshoot version and launch failures
- The browser launches but automation behaves unexpectedly: compare the actual browser binary with the Puppeteer release’s mapped version. Switch to the matching Chrome for Testing build or test the chosen system browser against the same workflows.
- No browser executable is found: confirm the installation script was allowed to run, inspect Puppeteer’s browser-download configuration, and verify that the expected cache or executable path is accessible.
- A project targets an older Puppeteer release: check that release in the official table rather than applying today’s latest browser versions to it. For an unlisted release, use the immediately prior listed release’s browser mapping.
- Chrome and Firefox results differ: remember that their default protocols differ (CDP for Chrome, WebDriver BiDi for Firefox). Diagnose against the browser family and protocol actually used rather than treating the two as equivalent.
- It works locally but fails in deployment: compare Node.js version, operating system, architecture, browser installation, and launch configuration in both environments. Browser mapping alone does not establish platform compatibility.
Or skip the browser setup
If your goal is to capture a web page rather than automate an interactive browser workflow, ScreenshotNeo offers a one-request screenshot API. Its call can return an image or PDF without setting up Puppeteer and a browser binary locally:
Quick Recap
Best Value
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 parameters and output options. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. It also provides an MCP server so AI agents can take screenshots. The Free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for free.
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.




