BrowserContext class

BrowserContext represents individual user contexts within a browser.

When a browser is launched, it has at least one default browser context. Others can be created using Browser.createBrowserContext(). Each context has isolated storage (cookies/localStorage/etc.)

BrowserContext emits various events which are documented in the BrowserContextEvent enum.

If a page opens another page, e.g. using window.open, the popup will belong to the parent page’s browser context.

Signature

export declare abstract class BrowserContext extends EventEmitter<BrowserContextEvents>

Extends: EventEmitter<BrowserContextEvents>

Remarks

In Chrome all non-default contexts are incognito, and default browser context might be incognito if you provide the --incognito argument when launching the browser.

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.

Example

Creating a new browser context:

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

Properties

Property Modifiers Type Description
closed `readonly` boolean Whether this [browser context](./puppeteer.browsercontext.md) is closed.
id `readonly` string \| undefined Identifier for this [browser context](./puppeteer.browsercontext.md).

Methods

Method Modifiers Description
[browser()](./puppeteer.browsercontext.browser.md) Gets the [browser](./puppeteer.browser.md) associated with this [browser context](./puppeteer.browsercontext.md).
[clearPermissionOverrides()](./puppeteer.browsercontext.clearpermissionoverrides.md) Clears all permission overrides for this [browser context](./puppeteer.browsercontext.md).
[close()](./puppeteer.browsercontext.close.md) Closes this [browser context](./puppeteer.browsercontext.md) and all associated [pages](./puppeteer.page.md). **Remarks:** The [default browser context](./puppeteer.browser.defaultbrowsercontext.md) cannot be closed.
[cookies()](./puppeteer.browsercontext.cookies.md) Gets all cookies in the browser context.
[deleteCookie(cookies)](./puppeteer.browsercontext.deletecookie.md) Removes cookie in the browser context
[newPage()](./puppeteer.browsercontext.newpage.md) Creates a new [page](./puppeteer.page.md) in this [browser context](./puppeteer.browsercontext.md).
[overridePermissions(origin, permissions)](./puppeteer.browsercontext.overridepermissions.md) Grants this [browser context](./puppeteer.browsercontext.md) the given `permissions` within the given `origin`.
[pages()](./puppeteer.browsercontext.pages.md) Gets a list of all open [pages](./puppeteer.page.md) inside this [browser context](./puppeteer.browsercontext.md). **Remarks:** Non-visible [pages](./puppeteer.page.md), such as `"background_page"`, will not be listed here. You can find them using [Target.page()](./puppeteer.target.page.md).
[setCookie(cookies)](./puppeteer.browsercontext.setcookie.md) Sets a cookie in the browser context.
[targets()](./puppeteer.browsercontext.targets.md) Gets all active [targets](./puppeteer.target.md) inside this [browser context](./puppeteer.browsercontext.md).
[waitForTarget(predicate, options)](./puppeteer.browsercontext.waitfortarget.md) Waits until a [target](./puppeteer.target.md) matching the given `predicate` appears and returns it. This will look all open [browser contexts](./puppeteer.browsercontext.md).