Skip to main content
Version: Next

Browser class

A Browser is created when Puppeteer connects to a Chromium instance, either through PuppeteerNode.launch() or Puppeteer.connect().


export declare class Browser extends EventEmitter

Extends: EventEmitter


The Browser class extends from Puppeteer's EventEmitter class and will emit various events which are documented in the BrowserEmittedEvents enum.

The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Browser class.

Example 1

An example of using a Browser to create a Page:

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('');
await browser.close();

Example 2

An example of disconnecting from and reconnecting to a Browser:

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch();
// Store the endpoint to be able to reconnect to Chromium
const browserWSEndpoint = browser.wsEndpoint();
// Disconnect puppeteer from Chromium

// Use the endpoint to reestablish a connection
const browser2 = await puppeteer.connect({browserWSEndpoint});
// Close Chromium
await browser2.close();


browserContexts()Returns an array of all open browser contexts. In a newly created browser, this will return a single instance of BrowserContext.
close()Closes Chromium and all of its pages (if any were opened). The Browser object itself is considered to be disposed and cannot be used anymore.
createIncognitoBrowserContext(options)Creates a new incognito browser context. This won't share cookies/cache with other browser contexts.
defaultBrowserContext()Returns the default browser context. The default browser context cannot be closed.
disconnect()Disconnects Puppeteer from the browser, but leaves the Chromium process running. After calling disconnect, the Browser object is considered disposed and cannot be used anymore.
isConnected()Indicates that the browser is connected.
newPage()Promise which resolves to a new Page object. The Page is created in a default browser context.
pages()An array of all open pages inside the Browser.
process()The spawned browser process. Returns null if the browser instance was created with Puppeteer.connect().
target()The target associated with the browser.
targets()All active targets inside the Browser. In case of multiple browser contexts, returns an array with all the targets in all browser contexts.
userAgent()The browser's original user agent. Pages can override the browser user agent with Page.setUserAgent().
version()A string representing the browser name and version.
waitForTarget(predicate, options)Searches for a target in all browser contexts.
wsEndpoint()The browser websocket endpoint which can be used as an argument to Puppeteer.connect().