Browser represents a browser instance that is either:
Browser emits various events which are documented in the BrowserEvent enum.
export declare abstract class Browser extends EventEmitter<BrowserEvents>
Extends: EventEmitter<BrowserEvents>
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.
Using a Browser to create a Page:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await browser.close();
Disconnecting from and reconnecting to a Browser:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
// Store the endpoint to be able to reconnect to the browser.
const browserWSEndpoint = browser.wsEndpoint();
// Disconnect puppeteer from the browser.
await browser.disconnect();
// Use the endpoint to reestablish a connection
const browser2 = await puppeteer.connect({browserWSEndpoint});
// Close the browser.
await browser2.close();
Property | Modifiers | Type | Description |
---|---|---|---|
connected | `readonly` | boolean | Whether Puppeteer is connected to this [browser](./puppeteer.browser.md). |
debugInfo | `readonly` | [DebugInfo](./puppeteer.debuginfo.md) | **_(Experimental)_** Get debug information from Puppeteer. **Remarks:** Currently, includes pending protocol calls. In the future, we might add more info. |
Method | Modifiers | Description |
---|---|---|
[browserContexts()](./puppeteer.browser.browsercontexts.md) | Gets a list of open [browser contexts](./puppeteer.browsercontext.md). In a newly-created [browser](./puppeteer.browser.md), this will return a single instance of [BrowserContext](./puppeteer.browsercontext.md). | |
[close()](./puppeteer.browser.close.md) | Closes this [browser](./puppeteer.browser.md) and all associated [pages](./puppeteer.page.md). | |
Returns all cookies in the default [BrowserContext](./puppeteer.browsercontext.md). **Remarks:** Shortcut for [browser.defaultBrowserContext().cookies()](./puppeteer.browsercontext.cookies.md). | ||
[createBrowserContext(options)](./puppeteer.browser.createbrowsercontext.md) | Creates a new [browser context](./puppeteer.browsercontext.md). This won't share cookies/cache with other [browser contexts](./puppeteer.browsercontext.md). | |
[defaultBrowserContext()](./puppeteer.browser.defaultbrowsercontext.md) | Gets the default [browser context](./puppeteer.browsercontext.md). **Remarks:** The default [browser context](./puppeteer.browsercontext.md) cannot be closed. | |
Removes cookies from the default [BrowserContext](./puppeteer.browsercontext.md). **Remarks:** Shortcut for [browser.defaultBrowserContext().deleteCookie()](./puppeteer.browsercontext.deletecookie.md). | ||
[disconnect()](./puppeteer.browser.disconnect.md) | Disconnects Puppeteer from this [browser](./puppeteer.browser.md), but leaves the process running. | |
[isConnected()](./puppeteer.browser.isconnected.md) | `deprecated` | Whether Puppeteer is connected to this [browser](./puppeteer.browser.md). **Deprecated:** Use [Browser.connected](./puppeteer.browser.md). |
[newPage()](./puppeteer.browser.newpage.md) | Creates a new [page](./puppeteer.page.md) in the [default browser context](./puppeteer.browser.defaultbrowsercontext.md). | |
[pages()](./puppeteer.browser.pages.md) | Gets a list of all open [pages](./puppeteer.page.md) inside this [Browser](./puppeteer.browser.md). If there are multiple [browser contexts](./puppeteer.browsercontext.md), this returns all [pages](./puppeteer.page.md) in all [browser contexts](./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). | |
[process()](./puppeteer.browser.process.md) | Gets the associated [ChildProcess](https://nodejs.org/api/child_process.html#class-childprocess). | |
Sets cookies in the default [BrowserContext](./puppeteer.browsercontext.md). **Remarks:** Shortcut for [browser.defaultBrowserContext().setCookie()](./puppeteer.browsercontext.setcookie.md). | ||
[target()](./puppeteer.browser.target.md) | Gets the [target](./puppeteer.target.md) associated with the [default browser context](./puppeteer.browser.defaultbrowsercontext.md)). | |
[targets()](./puppeteer.browser.targets.md) | Gets all active [targets](./puppeteer.target.md). In case of multiple [browser contexts](./puppeteer.browsercontext.md), this returns all [targets](./puppeteer.target.md) in all [browser contexts](./puppeteer.browsercontext.md). | |
[userAgent()](./puppeteer.browser.useragent.md) | Gets this [browser's](./puppeteer.browser.md) original user agent. [Pages](./puppeteer.page.md) can override the user agent with [Page.setUserAgent()](./puppeteer.page.setuseragent.md). | |
[version()](./puppeteer.browser.version.md) | Gets a string representing this [browser's](./puppeteer.browser.md) name and version. For headless browser, this is similar to `"HeadlessChrome/61.0.3153.0"`. For non-headless or new-headless, this is similar to `"Chrome/61.0.3153.0"`. For Firefox, it is similar to `"Firefox/116.0a1"`. The format of [Browser.version()](./puppeteer.browser.version.md) might change with future releases of browsers. | |
[waitForTarget(predicate, options)](./puppeteer.browser.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). | |
[wsEndpoint()](./puppeteer.browser.wsendpoint.md) |
Gets the WebSocket URL to connect to this [browser](./puppeteer.browser.md).
This is usually used with [Puppeteer.connect()](./puppeteer.puppeteer.connect.md).
You can find the debugger URL (`webSocketDebuggerUrl`) from `http://HOST:PORT/json/version`.
See [browser endpoint](https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target) for more information.
**Remarks:**
The format is always `ws://HOST:PORT/devtools/browser/ |