The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Call await browser.version() on your Puppeteer Browser instance. It returns a Promise<string> with the browser’s reported name and version, such as Chrome/61.0.3153.0 or Firefox/116.0a1. Treat the returned text as a display or diagnostic value: Puppeteer warns that its format can change.
Get the browser name and version
Run browser.version() after connecting to or launching the browser. Because it returns a promise, await it before using the result:
As an Amazon Associate I earn from qualifying purchases.
const browserNameAndVersion = await browser.version();
console.log(browserNameAndVersion);
The result is a combined name-and-version string, not a structured object with separate fields. Puppeteer’s API documentation gives examples including HeadlessChrome/61.0.3153.0, Chrome/61.0.3153.0, and Firefox/116.0a1. These are illustrative examples, not a guarantee about the exact format produced by every current browser release. See the Puppeteer Browser.version() documentation.
Runnable example
This example launches Puppeteer’s default browser, reports its identity, and closes the browser even if an error occurs:
#1 Best Overall
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
try {
const identity = await browser.version();
console.log(identity);
} finally {
await browser.close();
}
})();
If your code already has a connected Browser instance, use that instance instead; there is no need to launch another browser just to retrieve the value.
Choose between configured browser and runtime identity
There are two related but different questions: what browser your application asked Puppeteer to use, and what the connected browser reports itself to be.
Rank #2
| Need | Use | What it tells you |
|---|---|---|
| Know which browser your application selected | Inspect your launch/configuration code, including defaultBrowser or the PUPPETEER_BROWSER environment variable |
The configured browser choice, not necessarily a separately verified runtime identity. See Puppeteer configuration. |
| Ask the connected browser for its reported name and version | await browser.version() |
The combined identity string returned by that browser instance. |
Puppeteer documents chrome and firefox as supported browser families. Which Chrome for Testing and Firefox releases pair with a particular Puppeteer release is version-sensitive; check the supported browsers page for the relevant release rather than assuming the mapping stays fixed.
Free tools Windows power users keep installed
One-click scans. No signup required.
Do not confuse browser version with user agent
browser.userAgent() returns the browser’s original user-agent string. It answers a different question from browser.version(). In addition, Puppeteer allows a page’s user agent to be overridden with Page.setUserAgent(), so a page’s user-agent value may not match the browser’s original one. Use browser.version() when you need the browser’s reported name and version; use user-agent APIs when you need the string sent for a page request. See Puppeteer’s Browser.userAgent() documentation.
Handle the result without brittle parsing
The API returns one string, and Puppeteer explicitly warns that its format can change with future browser releases. For logs, diagnostics, or a user-visible report, keep and display the whole value. If you need a broad family label, you can inspect the string, but avoid treating a particular delimiter or version pattern as a permanent contract.
When your application controls the launch choice and needs stable branching, use that application’s own configuration as the contract. Runtime parsing is better suited to reporting what the connected browser says it is, not to enforcing a long-lived selection rule.
Rank #4
Or skip the browser setup
If the goal is a website screenshot rather than browser automation, ScreenshotNeo provides a screenshot API and MCP server. One GET request can return an image or PDF; its documented options include choosing PNG, JPEG, or WebP output. Example cURL request:
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 →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 setup. It removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, and cache hits are not billed. Its MCP server lets AI agents take screenshots, and the Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for free ScreenshotNeo access.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Does `browser.version()` return only a version number?
No. It returns a string combining the browser name and version.
Best Value
- Used Book in Good Condition
Can I use `browser.version()` to identify the configured browser family reliably?
It reports the connected browser’s identity string. For a stable application choice, consult the browser selection in your own launch or configuration code.
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.
Recommended Free Tools




