Skip to main content
Version: Next

BrowserContext class

BrowserContexts provide a way to operate multiple independent browser sessions. When a browser is launched, it has a single BrowserContext used by default. The method Browser.newPage creates a page in the default browser context.


export declare class BrowserContext extends EventEmitter

Extends: EventEmitter


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

If a page opens another page, e.g. with a call, the popup will belong to the parent page's browser context.

Puppeteer allows creation of "incognito" browser contexts with Browser.createIncognitoBrowserContext method. "Incognito" browser contexts don't write any browsing data to disk.

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


// Create a new incognito browser context
const context = await browser.createIncognitoBrowserContext();
// Create a new page inside context.
const page = await context.newPage();
// ... do stuff with page ...
await page.goto('');
// Dispose context once it's no longer needed.
await context.close();


idreadonlystring | undefined


browser()The browser this browser context belongs to.
clearPermissionOverrides()Clears all permission overrides for the browser context.
close()Closes the browser context. All the targets that belong to the browser context will be closed.
isIncognito()Returns whether BrowserContext is incognito. The default browser context is the only non-incognito browser context.
newPage()Creates a new page in the browser context.
overridePermissions(origin, permissions)
pages()An array of all pages inside the browser context.
targets()An array of all active targets inside the browser context.
waitForTarget(predicate, options)This searches for a target in this specific browser context.