docs/api/puppeteer.browsercontext.md
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
</th><th>Modifiers
</th><th>Type
</th><th>Description
</th></tr></thead> <tbody><tr><td><span id="closed">closed</span>
</td><td>readonly
boolean
</td><td>Whether this browser context is closed.
</td></tr> <tr><td><span id="id">id</span>
</td><td>readonly
string | undefined
</td><td>Identifier for this browser context.
</td></tr> </tbody></table>Method
</th><th>Modifiers
</th><th>Description
</th></tr></thead> <tbody><tr><td><span id="browser">browser()</span>
</td><td> </td><td>Gets the browser associated with this browser context.
</td></tr> <tr><td><span id="clearpermissionoverrides">clearPermissionOverrides()</span>
</td><td> </td><td>Clears all permission overrides for this browser context.
</td></tr> <tr><td><span id="close">close()</span>
</td><td> </td><td>Closes this browser context and all associated pages.
Remarks:
The default browser context cannot be closed.
</td></tr> <tr><td><span id="cookies">cookies()</span>
</td><td> </td><td>Gets all cookies in the browser context.
</td></tr> <tr><td><span id="deletecookie">deleteCookie(cookies)</span>
</td><td> </td><td>Removes cookie in this browser context.
</td></tr> <tr><td><span id="deletematchingcookies">deleteMatchingCookies(filters)</span>
</td><td> </td><td>Deletes cookies matching the provided filters in this browser context.
</td></tr> <tr><td><span id="newpage">newPage(options)</span>
</td><td> </td><td>Creates a new page in this browser context.
</td></tr> <tr><td><span id="overridepermissions">overridePermissions(origin, permissions)</span>
</td><td>deprecated
Grants this browser context the given permissions within the given origin.
Deprecated:
in favor of BrowserContext.setPermission().
</td></tr> <tr><td><span id="pages">pages(includeAll)</span>
</td><td> </td><td>Gets a list of all open pages inside this browser context.
Remarks:
Non-visible pages, such as "background_page", will not be listed here. You can find them using Target.page().
<span id="setcookie">setCookie(cookies)</span>
</td><td> </td><td>Sets a cookie in the browser context.
</td></tr> <tr><td><span id="setpermission">setPermission(origin, permissions)</span>
</td><td> </td><td>Sets the permission for a specific origin.
</td></tr> <tr><td><span id="targets">targets()</span>
</td><td> </td><td>Gets all active targets inside this browser context.
</td></tr> <tr><td><span id="waitfortarget">waitForTarget(predicate, options)</span>
</td><td> </td><td>Waits until a target matching the given predicate appears and returns it.
This will look all open browser contexts.
</td></tr> </tbody></table>