The Accessibility class provides methods for inspecting the browser's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access).
</td></tr>
<tr><td>
[Browser](./puppeteer.browser.md)
</td><td>
[Browser](./puppeteer.browser.md) represents a browser instance that is either:
- connected to via [Puppeteer.connect()](./puppeteer.puppeteer.connect.md) or - launched by [PuppeteerNode.launch()](./puppeteer.puppeteernode.launch.md).
[Browser](./puppeteer.browser.md) [emits](./puppeteer.eventemitter.md) various events which are documented in the [BrowserEvent](./puppeteer.browserevent.md) enum.
</td></tr>
<tr><td>
[BrowserContext](./puppeteer.browsercontext.md)
</td><td>
[BrowserContext](./puppeteer.browsercontext.md) represents individual user contexts within a [browser](./puppeteer.browser.md).
When a [browser](./puppeteer.browser.md) is launched, it has a single [browser context](./puppeteer.browsercontext.md) by default. Others can be created using [Browser.createBrowserContext()](./puppeteer.browser.createbrowsercontext.md). Each context has isolated storage (cookies/localStorage/etc.)
[BrowserContext](./puppeteer.browsercontext.md) [emits](./puppeteer.eventemitter.md) various events which are documented in the [BrowserContextEvent](./puppeteer.browsercontextevent.md) enum.
If a [page](./puppeteer.page.md) opens another [page](./puppeteer.page.md), e.g. using `window.open`, the popup will belong to the parent [page's browser context](./puppeteer.page.browsercontext.md).
</td></tr>
<tr><td>
[CDPSession](./puppeteer.cdpsession.md)
</td><td>
The `CDPSession` instances are used to talk raw Chrome Devtools Protocol.
</td></tr>
<tr><td>
[Connection](./puppeteer.connection.md)
</td><td>
</td></tr>
<tr><td>
[ConsoleMessage](./puppeteer.consolemessage.md)
</td><td>
ConsoleMessage objects are dispatched by page via the 'console' event.
</td></tr>
<tr><td>
[Coverage](./puppeteer.coverage.md)
</td><td>
The Coverage class provides methods to gather information about parts of JavaScript and CSS that were used by the page.
Dialog instances are dispatched by the [Page](./puppeteer.page.md) via the `dialog` event.
</td></tr>
<tr><td>
[ElementHandle](./puppeteer.elementhandle.md)
</td><td>
ElementHandle represents an in-page DOM element.
</td></tr>
<tr><td>
[EventEmitter](./puppeteer.eventemitter.md)
</td><td>
The EventEmitter class that many Puppeteer classes extend.
</td></tr>
<tr><td>
[FileChooser](./puppeteer.filechooser.md)
</td><td>
File choosers let you react to the page requesting for a file.
</td></tr>
<tr><td>
[Frame](./puppeteer.frame.md)
</td><td>
Represents a DOM frame.
To understand frames, you can think of frames as `<iframe>` elements. Just like iframes, frames can be nested, and when JavaScript is executed in a frame, the JavaScript does not effect frames inside the ambient frame the JavaScript executes in.
</td></tr>
<tr><td>
[HTTPRequest](./puppeteer.httprequest.md)
</td><td>
Represents an HTTP request sent by a page.
</td></tr>
<tr><td>
[HTTPResponse](./puppeteer.httpresponse.md)
</td><td>
The HTTPResponse class represents responses which are received by the [Page](./puppeteer.page.md) class.
</td></tr>
<tr><td>
[JSCoverage](./puppeteer.jscoverage.md)
</td><td>
</td></tr>
<tr><td>
[JSHandle](./puppeteer.jshandle.md)
</td><td>
Represents a reference to a JavaScript object. Instances can be created using [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md).
Handles prevent the referenced JavaScript object from being garbage-collected unless the handle is purposely [disposed](./puppeteer.jshandle.dispose.md). JSHandles are auto-disposed when their associated frame is navigated away or the parent context gets destroyed.
Handles can be used as arguments for any evaluation function such as [Page.$eval()](./puppeteer.page._eval.md), [Page.evaluate()](./puppeteer.page.evaluate.md), and [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md). They are resolved to their referenced object.
</td></tr>
<tr><td>
[Keyboard](./puppeteer.keyboard.md)
</td><td>
Keyboard provides an api for managing a virtual keyboard. The high level api is [Keyboard.type()](./puppeteer.keyboard.type.md), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page.
</td></tr>
<tr><td>
[Locator](./puppeteer.locator.md)
</td><td>
Locators describe a strategy of locating objects and performing an action on them. If the action fails because the object is not ready for the action, the whole operation is retried. Various preconditions for a successful action are checked automatically.
</td></tr>
<tr><td>
[Mouse](./puppeteer.mouse.md)
</td><td>
The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport.
</td></tr>
<tr><td>
[Page](./puppeteer.page.md)
</td><td>
Page provides methods to interact with a single tab or [extension background page](https://developer.chrome.com/extensions/background_pages) in the browser.
:::note
One Browser instance might have multiple Page instances.
:::
</td></tr>
<tr><td>
[ProductLauncher](./puppeteer.productlauncher.md)
</td><td>
Describes a launcher - a class that is able to create and launch a browser instance.
</td></tr>
<tr><td>
[ProtocolError](./puppeteer.protocolerror.md)
</td><td>
ProtocolError is emitted whenever there is an error from the protocol.
</td></tr>
<tr><td>
[Puppeteer](./puppeteer.puppeteer.md)
</td><td>
The main Puppeteer class.
IMPORTANT: if you are using Puppeteer in a Node environment, you will get an instance of [PuppeteerNode](./puppeteer.puppeteernode.md) when you import or require `puppeteer`. That class extends `Puppeteer`, so has all the methods documented below as well as all that are defined on [PuppeteerNode](./puppeteer.puppeteernode.md).
</td></tr>
<tr><td>
[PuppeteerError](./puppeteer.puppeteererror.md)
</td><td>
The base class for all Puppeteer-specific errors
</td></tr>
<tr><td>
[PuppeteerNode](./puppeteer.puppeteernode.md)
</td><td>
Extends the main [Puppeteer](./puppeteer.puppeteer.md) class with Node specific behaviour for fetching and downloading browsers.
If you're using Puppeteer in a Node environment, this is the class you'll get when you run `require('puppeteer')` (or the equivalent ES `import`).
</td></tr>
<tr><td>
[ScreenRecorder](./puppeteer.screenrecorder.md)
</td><td>
</td></tr>
<tr><td>
[SecurityDetails](./puppeteer.securitydetails.md)
</td><td>
The SecurityDetails class represents the security details of a response that was received over a secure connection.
</td></tr>
<tr><td>
[Target](./puppeteer.target.md)
</td><td>
Target represents a [CDP target](https://chromedevtools.github.io/devtools-protocol/tot/Target/). In CDP a target is something that can be debugged such a frame, a page or a worker.
</td></tr>
<tr><td>
[TimeoutError](./puppeteer.timeouterror.md)
</td><td>
TimeoutError is emitted whenever certain operations are terminated due to timeout.
</td></tr>
<tr><td>
[Touchscreen](./puppeteer.touchscreen.md)
</td><td>
The Touchscreen class exposes touchscreen events.
</td></tr>
<tr><td>
[Tracing](./puppeteer.tracing.md)
</td><td>
The Tracing class exposes the tracing audit interface.
Import [Puppeteer](./puppeteer.puppeteer.md) and use the static method [Puppeteer.clearCustomQueryHandlers()](./puppeteer.puppeteer.clearcustomqueryhandlers.md)
Import [Puppeteer](./puppeteer.puppeteer.md) and use the static method [Puppeteer.customQueryHandlerNames()](./puppeteer.puppeteer.customqueryhandlernames.md)
Import [Puppeteer](./puppeteer.puppeteer.md) and use the static method [Puppeteer.registerCustomQueryHandler()](./puppeteer.puppeteer.registercustomqueryhandler.md)
Import [Puppeteer](./puppeteer.puppeteer.md) and use the static method [Puppeteer.unregisterCustomQueryHandler()](./puppeteer.puppeteer.unregistercustomqueryhandler.md)
Represents the source scheme of the origin that originally set the cookie. A value of "Unset" allows protocol clients to emulate legacy cookie scope for the scheme. This is a temporary ability and it will be removed in the future.