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.
export declare abstract class BrowserContext extends EventEmitter<BrowserContextEvents>
Extends: EventEmitter<BrowserContextEvents>
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.
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();
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). |
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. | |
Gets all cookies in the browser context. | ||
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). | |
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). |