mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
chore: release main (#12252)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
This commit is contained in:
parent
f75756cd38
commit
75f170b26d
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"packages/puppeteer": "22.6.3",
|
"packages/puppeteer": "22.6.4",
|
||||||
"packages/puppeteer-core": "22.6.3",
|
"packages/puppeteer-core": "22.6.4",
|
||||||
"packages/testserver": "0.6.0",
|
"packages/testserver": "0.6.0",
|
||||||
"packages/ng-schematics": "0.6.0",
|
"packages/ng-schematics": "0.6.0",
|
||||||
"packages/browsers": "2.2.1"
|
"packages/browsers": "2.2.1"
|
||||||
|
@ -10,6 +10,7 @@ The following versions of the browsers are supported, mapped to Puppeteer versio
|
|||||||
|
|
||||||
<!-- version-start -->
|
<!-- version-start -->
|
||||||
|
|
||||||
|
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.122 - [Puppeteer v22.6.4](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.4/docs/api/index.md)
|
||||||
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.105 - [Puppeteer v22.6.3](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.3/docs/api/index.md)
|
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.105 - [Puppeteer v22.6.3](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.3/docs/api/index.md)
|
||||||
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.86 - [Puppeteer v22.6.2](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.2/docs/api/index.md)
|
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.86 - [Puppeteer v22.6.2](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.2/docs/api/index.md)
|
||||||
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.58 - [Puppeteer v22.6.0](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.0/docs/api/index.md)
|
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) 123.0.6312.58 - [Puppeteer v22.6.0](https://github.com/puppeteer/puppeteer/blob/puppeteer-v22.6.0/docs/api/index.md)
|
||||||
|
6
package-lock.json
generated
6
package-lock.json
generated
@ -12235,14 +12235,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/puppeteer": {
|
"packages/puppeteer": {
|
||||||
"version": "22.6.3",
|
"version": "22.6.4",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@puppeteer/browsers": "2.2.1",
|
"@puppeteer/browsers": "2.2.1",
|
||||||
"cosmiconfig": "9.0.0",
|
"cosmiconfig": "9.0.0",
|
||||||
"devtools-protocol": "0.0.1262051",
|
"devtools-protocol": "0.0.1262051",
|
||||||
"puppeteer-core": "22.6.3"
|
"puppeteer-core": "22.6.4"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"puppeteer": "lib/esm/puppeteer/node/cli.js"
|
"puppeteer": "lib/esm/puppeteer/node/cli.js"
|
||||||
@ -12255,7 +12255,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/puppeteer-core": {
|
"packages/puppeteer-core": {
|
||||||
"version": "22.6.3",
|
"version": "22.6.4",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@puppeteer/browsers": "2.2.1",
|
"@puppeteer/browsers": "2.2.1",
|
||||||
|
@ -20,6 +20,16 @@ All notable changes to this project will be documented in this file. See [standa
|
|||||||
* dependencies
|
* dependencies
|
||||||
* @puppeteer/browsers bumped from 1.5.1 to 1.6.0
|
* @puppeteer/browsers bumped from 1.5.1 to 1.6.0
|
||||||
|
|
||||||
|
## [22.6.4](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.6.3...puppeteer-core-v22.6.4) (2024-04-11)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **a11y:** query only unignored nodes ([#12224](https://github.com/puppeteer/puppeteer/issues/12224)) ([e20cd64](https://github.com/puppeteer/puppeteer/commit/e20cd64fff374c4113777912c193f4a5d7d04297))
|
||||||
|
* retain stale main frame for longer ([#12225](https://github.com/puppeteer/puppeteer/issues/12225)) ([aa5b182](https://github.com/puppeteer/puppeteer/commit/aa5b1824a5c82005fcfc05b002facfbbb9810f8f))
|
||||||
|
* roll to Chrome 123.0.6312.122 (r1262506) ([#12248](https://github.com/puppeteer/puppeteer/issues/12248)) ([50b6659](https://github.com/puppeteer/puppeteer/commit/50b66591e70a7b6907d86594d7dacee6e76afc2d))
|
||||||
|
* **webdriver:** suppress error for error code errors ([5f7254c](https://github.com/puppeteer/puppeteer/commit/5f7254c41c7c1bda82477488f10254d204373d54))
|
||||||
|
|
||||||
## [22.6.3](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.6.2...puppeteer-core-v22.6.3) (2024-04-05)
|
## [22.6.3](https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.6.2...puppeteer-core-v22.6.3) (2024-04-05)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "puppeteer-core",
|
"name": "puppeteer-core",
|
||||||
"version": "22.6.3",
|
"version": "22.6.4",
|
||||||
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"puppeteer",
|
"puppeteer",
|
||||||
|
@ -29,6 +29,20 @@ All notable changes to this project will be documented in this file. See [standa
|
|||||||
* puppeteer-core bumped from 21.0.2 to 21.0.3
|
* puppeteer-core bumped from 21.0.2 to 21.0.3
|
||||||
* @puppeteer/browsers bumped from 1.5.1 to 1.6.0
|
* @puppeteer/browsers bumped from 1.5.1 to 1.6.0
|
||||||
|
|
||||||
|
## [22.6.4](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.3...puppeteer-v22.6.4) (2024-04-11)
|
||||||
|
|
||||||
|
|
||||||
|
### Miscellaneous Chores
|
||||||
|
|
||||||
|
* **puppeteer:** Synchronize puppeteer versions
|
||||||
|
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
* The following workspace dependencies were updated
|
||||||
|
* dependencies
|
||||||
|
* puppeteer-core bumped from 22.6.3 to 22.6.4
|
||||||
|
|
||||||
## [22.6.3](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.2...puppeteer-v22.6.3) (2024-04-05)
|
## [22.6.3](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.2...puppeteer-v22.6.3) (2024-04-05)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "puppeteer",
|
"name": "puppeteer",
|
||||||
"version": "22.6.3",
|
"version": "22.6.4",
|
||||||
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"puppeteer",
|
"puppeteer",
|
||||||
@ -124,7 +124,7 @@
|
|||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cosmiconfig": "9.0.0",
|
"cosmiconfig": "9.0.0",
|
||||||
"puppeteer-core": "22.6.3",
|
"puppeteer-core": "22.6.4",
|
||||||
"@puppeteer/browsers": "2.2.1",
|
"@puppeteer/browsers": "2.2.1",
|
||||||
"devtools-protocol": "0.0.1262051"
|
"devtools-protocol": "0.0.1262051"
|
||||||
},
|
},
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
const versionsPerRelease = new Map([
|
const versionsPerRelease = new Map([
|
||||||
// This is a mapping from Chrome version => Puppeteer version.
|
// This is a mapping from Chrome version => Puppeteer version.
|
||||||
// In Chrome roll patches, use `NEXT` for the Puppeteer version.
|
// In Chrome roll patches, use `NEXT` for the Puppeteer version.
|
||||||
['123.0.6312.122', 'NEXT'],
|
['123.0.6312.122', 'v22.6.4'],
|
||||||
['123.0.6312.105', 'v22.6.3'],
|
['123.0.6312.105', 'v22.6.3'],
|
||||||
['123.0.6312.86', 'v22.6.2'],
|
['123.0.6312.86', 'v22.6.2'],
|
||||||
['123.0.6312.58', 'v22.6.0'],
|
['123.0.6312.58', 'v22.6.0'],
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_label: CommonEventEmitter
|
|
||||||
---
|
|
||||||
|
|
||||||
# CommonEventEmitter interface
|
|
||||||
|
|
||||||
#### Signature:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
export interface CommonEventEmitter<Events extends Record<EventType, unknown>>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Methods
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Method
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[emit(type, event)](./puppeteer.commoneventemitter.emit.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[listenerCount(event)](./puppeteer.commoneventemitter.listenercount.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[off(type, handler)](./puppeteer.commoneventemitter.off.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[on(type, handler)](./puppeteer.commoneventemitter.on.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[once(type, handler)](./puppeteer.commoneventemitter.once.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[removeAllListeners(event)](./puppeteer.commoneventemitter.removealllisteners.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
@ -1,308 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_label: API
|
|
||||||
---
|
|
||||||
|
|
||||||
# @puppeteer/browsers
|
|
||||||
|
|
||||||
Manage and launch browsers/drivers from a CLI or programmatically.
|
|
||||||
|
|
||||||
## CLI
|
|
||||||
|
|
||||||
Use `npx` to run the CLI:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx @puppeteer/browsers --help
|
|
||||||
```
|
|
||||||
|
|
||||||
CLI help will provide all documentation you need to use the CLI.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx @puppeteer/browsers --help # help for all commands
|
|
||||||
npx @puppeteer/browsers install --help # help for the install command
|
|
||||||
npx @puppeteer/browsers launch --help # help for the launch command
|
|
||||||
```
|
|
||||||
|
|
||||||
## Known limitations
|
|
||||||
|
|
||||||
1. We support installing and running Firefox, Chrome and Chromium. The `latest`, `beta`, `dev`, `canary`, `stable` keywords are only supported for the install command. For the `launch` command you need to specify an exact build ID. The build ID is provided by the `install` command (see `npx @puppeteer/browsers install --help` for the format).
|
|
||||||
2. Launching the system browsers is only possible for Chrome/Chromium.
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
The programmatic API allows installing and launching browsers from your code. See the `test` folder for examples on how to use the `install`, `canInstall`, `launch`, `computeExecutablePath`, `computeSystemExecutablePath` and other methods.
|
|
||||||
|
|
||||||
## Classes
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Class
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[CLI](./browsers.cli.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[InstalledBrowser](./browsers.installedbrowser.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[Process](./browsers.process.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[TimeoutError](./browsers.timeouterror.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
||||||
|
|
||||||
## Enumerations
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Enumeration
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[Browser](./browsers.browser.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
Supported browsers.
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[BrowserPlatform](./browsers.browserplatform.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
Platform names used to identify a OS platform x architecture combination in the way that is relevant for the browser download.
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[ChromeReleaseChannel](./browsers.chromereleasechannel.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
||||||
|
|
||||||
## Functions
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Function
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[canDownload(options)](./browsers.candownload.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[computeExecutablePath(options)](./browsers.computeexecutablepath.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[computeSystemExecutablePath(options)](./browsers.computesystemexecutablepath.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[createProfile(browser, opts)](./browsers.createprofile.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[detectBrowserPlatform()](./browsers.detectbrowserplatform.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[getInstalledBrowsers(options)](./browsers.getinstalledbrowsers.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
Returns metadata about browsers installed in the cache directory.
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[getVersionComparator(browser)](./browsers.getversioncomparator.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
Returns a version comparator for the given browser that can be used to sort browser versions.
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[install(options)](./browsers.install.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[install(options)](./browsers.install_1.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[launch(opts)](./browsers.launch.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[makeProgressCallback(browser, buildId)](./browsers.makeprogresscallback.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[resolveBuildId(browser, platform, tag)](./browsers.resolvebuildid.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[uninstall(options)](./browsers.uninstall.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
||||||
|
|
||||||
## Interfaces
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Interface
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[GetInstalledBrowsersOptions](./browsers.getinstalledbrowsersoptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[InstallOptions](./browsers.installoptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[LaunchOptions](./browsers.launchoptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[Options](./browsers.options.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[ProfileOptions](./browsers.profileoptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[SystemOptions](./browsers.systemoptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[UninstallOptions](./browsers.uninstalloptions.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
||||||
|
|
||||||
## Variables
|
|
||||||
|
|
||||||
<table><thead><tr><th>
|
|
||||||
|
|
||||||
Variable
|
|
||||||
|
|
||||||
</th><th>
|
|
||||||
|
|
||||||
Description
|
|
||||||
|
|
||||||
</th></tr></thead>
|
|
||||||
<tbody><tr><td>
|
|
||||||
|
|
||||||
[CDP_WEBSOCKET_ENDPOINT_REGEX](./browsers.cdp_websocket_endpoint_regex.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
<tr><td>
|
|
||||||
|
|
||||||
[WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX](./browsers.webdriver_bidi_websocket_endpoint_regex.md)
|
|
||||||
|
|
||||||
</td><td>
|
|
||||||
|
|
||||||
</td></tr>
|
|
||||||
</tbody></table>
|
|
@ -1,170 +0,0 @@
|
|||||||
# Locators
|
|
||||||
|
|
||||||
Locators is a new, experimental API that combines the functionalities of
|
|
||||||
waiting and actions. With additional precondition checks, it
|
|
||||||
enables automatic retries for failed actions, resulting in more reliable and
|
|
||||||
less flaky automation scripts.
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
Locators API is experimental and we will not follow semver for breaking changes
|
|
||||||
in the Locators API.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Use cases
|
|
||||||
|
|
||||||
### Waiting for an element
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page.locator('button').wait();
|
|
||||||
```
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
|
|
||||||
### Waiting for a function
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page
|
|
||||||
.locator(() => {
|
|
||||||
let resolve!: (node: HTMLCanvasElement) => void;
|
|
||||||
const promise = new Promise(res => {
|
|
||||||
return (resolve = res);
|
|
||||||
});
|
|
||||||
const observer = new MutationObserver(records => {
|
|
||||||
for (const record of records) {
|
|
||||||
if (record.target instanceof HTMLCanvasElement) {
|
|
||||||
resolve(record.target);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
observer.observe(document);
|
|
||||||
return promise;
|
|
||||||
})
|
|
||||||
.wait();
|
|
||||||
```
|
|
||||||
|
|
||||||
### Clicking an element
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page.locator('button').click();
|
|
||||||
```
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Ensures the element is in the viewport.
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
- Waits for the element to become enabled.
|
|
||||||
- Waits for the element to have a stable bounding box over two consecutive
|
|
||||||
animation frames.
|
|
||||||
|
|
||||||
### Clicking an element matching a criteria
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page
|
|
||||||
.locator('button')
|
|
||||||
.filter(button => !button.disabled)
|
|
||||||
.click();
|
|
||||||
```
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Ensures the element is in the viewport.
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
- Waits for the element to become enabled.
|
|
||||||
- Waits for the element to have a stable bounding box over two consecutive
|
|
||||||
animation frames.
|
|
||||||
|
|
||||||
### Filling out an input
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page.locator('input').fill('value');
|
|
||||||
```
|
|
||||||
|
|
||||||
Automatically detects the input type and choose an appropriate way to fill it out with the provided value.
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Ensures the element is in the viewport.
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
- Waits for the element to become enabled.
|
|
||||||
- Waits for the element to have a stable bounding box over two consecutive
|
|
||||||
animation frames.
|
|
||||||
|
|
||||||
### Retrieving an element property
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const enabled = await page
|
|
||||||
.locator('button')
|
|
||||||
.map(button => !button.disabled)
|
|
||||||
.wait();
|
|
||||||
```
|
|
||||||
|
|
||||||
### Hover over an element
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page.locator('div').hover();
|
|
||||||
```
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Ensures the element is in the viewport.
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
- Waits for the element to have a stable bounding box over two consecutive
|
|
||||||
animation frames.
|
|
||||||
|
|
||||||
### Scroll an element
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page.locator('div').scroll({
|
|
||||||
scrollLeft: 10,
|
|
||||||
scrollTop: 20,
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
The following preconditions are automatically checked:
|
|
||||||
|
|
||||||
- Ensures the element is in the viewport.
|
|
||||||
- Waits for the element to become
|
|
||||||
[visible](https://pptr.dev/api/puppeteer.elementhandle.isvisible/) or hidden.
|
|
||||||
- Waits for the element to have a stable bounding box over two consecutive
|
|
||||||
animation frames.
|
|
||||||
|
|
||||||
## Configuring locators
|
|
||||||
|
|
||||||
Locators can be configured to tune configure the preconditions and other other options:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
await page
|
|
||||||
.locator('button')
|
|
||||||
.setEnsureElementIsInTheViewport(false)
|
|
||||||
.setTimeout(0)
|
|
||||||
.setVisibility(null)
|
|
||||||
.setWaitForEnabled(false)
|
|
||||||
.setWaitForStableBoundingBox(false)
|
|
||||||
.click();
|
|
||||||
```
|
|
||||||
|
|
||||||
## Getting locator events
|
|
||||||
|
|
||||||
Currently, locators support a single event that notifies you when the locator is about to perform the action:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
let willClick = false;
|
|
||||||
await page
|
|
||||||
.locator('button')
|
|
||||||
.on(LocatorEvent.Action, () => {
|
|
||||||
willClick = true;
|
|
||||||
})
|
|
||||||
.click();
|
|
||||||
```
|
|
||||||
|
|
||||||
This event can be used for logging/debugging or other purposes. The event might
|
|
||||||
fire multiple times if the locator retries the action.
|
|
@ -1,118 +0,0 @@
|
|||||||
# Query Selectors (legacy)
|
|
||||||
|
|
||||||
Queries are the primary mechanism for interacting with the DOM on your site. For example, a typical workflow goes like:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// Import puppeteer
|
|
||||||
import puppeteer from 'puppeteer';
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
// Launch the browser
|
|
||||||
const browser = await puppeteer.launch();
|
|
||||||
|
|
||||||
// Create a page
|
|
||||||
const page = await browser.newPage();
|
|
||||||
|
|
||||||
// Go to your site
|
|
||||||
await page.goto('YOUR_SITE');
|
|
||||||
|
|
||||||
// Query for an element handle.
|
|
||||||
const element = await page.waitForSelector('div > .class-name');
|
|
||||||
|
|
||||||
// Do something with element...
|
|
||||||
await element.click(); // Just an example.
|
|
||||||
|
|
||||||
// Dispose of handle
|
|
||||||
await element.dispose();
|
|
||||||
|
|
||||||
// Close browser.
|
|
||||||
await browser.close();
|
|
||||||
})();
|
|
||||||
```
|
|
||||||
|
|
||||||
## CSS
|
|
||||||
|
|
||||||
CSS selectors follow the CSS spec of the browser being automated. We provide some basic type deduction for CSS selectors (such as `HTMLInputElement` for `input`), but any selector that contains no type information (such as `.class-name`) will need to be coerced manually using TypeScript's `as` coercion mechanism.
|
|
||||||
|
|
||||||
### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// Automatic
|
|
||||||
const element = await page.waitForSelector('div > input');
|
|
||||||
// Manual
|
|
||||||
const element = (await page.waitForSelector(
|
|
||||||
'div > .class-name-for-input'
|
|
||||||
)) as HTMLInputElement;
|
|
||||||
```
|
|
||||||
|
|
||||||
## Built-in selectors
|
|
||||||
|
|
||||||
Built-in selectors are Puppeteer's own class of selectors for doing things CSS cannot. Every built-in selector starts with a prefix `.../` to assist Puppeteer in distinguishing between CSS selectors and a built-in.
|
|
||||||
|
|
||||||
### Text selectors (`text/`)
|
|
||||||
|
|
||||||
Text selectors will select "minimal" elements containing the given text, even within (open) shadow roots. Here, "minimum" means the deepest elements that contain a given text, but not their parents (which technically will also contain the given text).
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// Note we usually need type coercion since the type cannot be deduced, but for text selectors, `instanceof` checks may be better for runtime validation.
|
|
||||||
const element = await page.waitForSelector('text/My name is Jun');
|
|
||||||
```
|
|
||||||
|
|
||||||
### XPath selectors (`xpath/`)
|
|
||||||
|
|
||||||
XPath selectors will use the browser's native [`Document.evaluate`](https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate) to query for elements.
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// There is not type deduction for XPaths.
|
|
||||||
const node = await page.waitForSelector('xpath/h2');
|
|
||||||
```
|
|
||||||
|
|
||||||
### ARIA selectors (`aria/`)
|
|
||||||
|
|
||||||
ARIA selectors can be used to find elements with a given ARIA label. These labels are computed using Chrome's internal representation.
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const node = await page.waitForSelector('aria/Button name');
|
|
||||||
```
|
|
||||||
|
|
||||||
### Pierce selectors (`pierce/`)
|
|
||||||
|
|
||||||
Pierce selectors will run the `querySelector*` API on the document and all shadow roots to find an element.
|
|
||||||
|
|
||||||
:::danger
|
|
||||||
|
|
||||||
Selectors will **not** _partially_ pierce through shadow roots. See the examples below.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
Suppose the HTML is
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div>
|
|
||||||
<custom-element>
|
|
||||||
<div></div>
|
|
||||||
</custom-element>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
Then
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// This will be two elements because of the outer and inner div.
|
|
||||||
expect((await page.$$('pierce/div')).length).toBe(2);
|
|
||||||
|
|
||||||
// Partial piercing doesn't work.
|
|
||||||
expect((await page.$$('pierce/div div')).length).toBe(0);
|
|
||||||
```
|
|
||||||
|
|
||||||
## Custom selectors
|
|
||||||
|
|
||||||
Puppeteer provides users the ability to add their own query selectors to Puppeteer using [Puppeteer.registerCustomQueryHandler](../api/puppeteer.registercustomqueryhandler.md). This is useful for creating custom selectors based on framework objects or other vendor-specific objects.
|
|
@ -1,213 +0,0 @@
|
|||||||
# Query Selectors
|
|
||||||
|
|
||||||
Queries are the primary mechanism for interacting with the DOM on your site. For example, a typical workflow goes like:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// Import puppeteer
|
|
||||||
import puppeteer from 'puppeteer';
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
// Launch the browser
|
|
||||||
const browser = await puppeteer.launch();
|
|
||||||
|
|
||||||
// Create a page
|
|
||||||
const page = await browser.newPage();
|
|
||||||
|
|
||||||
// Go to your site
|
|
||||||
await page.goto('YOUR_SITE');
|
|
||||||
|
|
||||||
// Query for an element handle.
|
|
||||||
const element = await page.waitForSelector('div > .class-name');
|
|
||||||
|
|
||||||
// Do something with element...
|
|
||||||
await element.click(); // Just an example.
|
|
||||||
|
|
||||||
// Dispose of handle
|
|
||||||
await element.dispose();
|
|
||||||
|
|
||||||
// Close browser.
|
|
||||||
await browser.close();
|
|
||||||
})();
|
|
||||||
```
|
|
||||||
|
|
||||||
## `P` Selectors
|
|
||||||
|
|
||||||
Puppeteer uses a superset of the CSS selector syntax for querying. We call this syntax _P selectors_ and it's supercharged with extra capabilities such as deep combinators and text selection.
|
|
||||||
|
|
||||||
:::caution
|
|
||||||
|
|
||||||
Although P selectors look like real CSS selectors (we intentionally designed it this way), they should not be used for actually CSS styling. They are designed only for Puppeteer.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
P selectors only work on the first "depth" of selectors; for example, `:is(div >>> a)` will not work.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
### `>>>` and `>>>>` combinators
|
|
||||||
|
|
||||||
The `>>>` and `>>>>` are called _deep descendent_ and _deep_ combinators respectively. Both combinators have the effect of going into shadow hosts with `>>>` going into every shadow host under a node and `>>>>` going into the immediate one (if the node is a shadow host; otherwise, it's a no-op).
|
|
||||||
|
|
||||||
:::note
|
|
||||||
|
|
||||||
A common question is when should `>>>>` be chosen over `>>>` considering the flexibility of `>>>`. A similar question can be asked about `>` and a space; choose `>` if you do not need to query all elements under a given node and a space otherwise. This answer extends to `>>>>` (`>`) and `>>>` (space) naturally.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
Suppose we have the markup
|
|
||||||
|
|
||||||
```html
|
|
||||||
<custom-element>
|
|
||||||
<template shadowrootmode="open">
|
|
||||||
<slot></slot>
|
|
||||||
</template>
|
|
||||||
<custom-element>
|
|
||||||
<template shadowrootmode="open">
|
|
||||||
<slot></slot>
|
|
||||||
</template>
|
|
||||||
<custom-element>
|
|
||||||
<template shadowrootmode="open">
|
|
||||||
<slot></slot>
|
|
||||||
</template>
|
|
||||||
<h2>Light content</h2>
|
|
||||||
</custom-element>
|
|
||||||
</custom-element>
|
|
||||||
</custom-element>
|
|
||||||
```
|
|
||||||
|
|
||||||
> Note: `<template shadowrootmode="open">` is not supported on Firefox.
|
|
||||||
> You can read more about it [here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template#attributes).
|
|
||||||
|
|
||||||
Then `custom-element >>> h2` will return `h2`, but `custom-element >>>> h2` will return nothing since the inner `h2` is in a deeper shadow root.
|
|
||||||
|
|
||||||
### `P`-elements
|
|
||||||
|
|
||||||
`P` elements are [pseudo-elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements) with a `-p` vendor prefix. It allows you to enhance your selectors with Puppeteer-specific query engines such as XPath, text queries, and ARIA.
|
|
||||||
|
|
||||||
#### Text selectors (`-p-text`)
|
|
||||||
|
|
||||||
Text selectors will select "minimal" elements containing the given text, even within (open) shadow roots. Here, "minimum" means the deepest elements that contain a given text, but not their parents (which technically will also contain the given text).
|
|
||||||
|
|
||||||
##### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const element = await page.waitForSelector('div ::-p-text(My name is Jun)');
|
|
||||||
// You can also use escapes.
|
|
||||||
const element = await page.waitForSelector(
|
|
||||||
':scope >>> ::-p-text(My name is Jun \\(pronounced like "June"\\))'
|
|
||||||
);
|
|
||||||
// or quotes
|
|
||||||
const element = await page.waitForSelector(
|
|
||||||
'div >>>> ::-p-text("My name is Jun (pronounced like \\"June\\")"):hover'
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### XPath selectors (`-p-xpath`)
|
|
||||||
|
|
||||||
XPath selectors will use the browser's native [`Document.evaluate`](https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate) to query for elements.
|
|
||||||
|
|
||||||
##### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const element = await page.waitForSelector('::-p-xpath(h2)');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### ARIA selectors (`-p-aria`)
|
|
||||||
|
|
||||||
ARIA selectors can be used to find elements with a given ARIA label. These labels are computed using Chrome's internal representation.
|
|
||||||
|
|
||||||
##### Example
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const node = await page.waitForSelector('::-p-aria(Submit)');
|
|
||||||
const node = await page.waitForSelector(
|
|
||||||
'::-p-aria([name="Click me"][role="button"])'
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
### Custom selectors
|
|
||||||
|
|
||||||
Puppeteer provides users the ability to add their own query selectors to Puppeteer using [Puppeteer.registerCustomQueryHandler](../api/puppeteer.registercustomqueryhandler.md). This is useful for creating custom selectors based on framework objects or other vendor-specific objects.
|
|
||||||
|
|
||||||
#### Custom Selectors
|
|
||||||
|
|
||||||
You can register a custom query handler that allows you to create custom selectors. For example, define a query handler for `getById` selectors:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
Puppeteer.registerCustomQueryHandler('getById', {
|
|
||||||
queryOne: (elementOrDocument, selector) => {
|
|
||||||
return elementOrDocument.querySelector(`[id="${CSS.escape(selector)}"]`);
|
|
||||||
},
|
|
||||||
// Note: for demonstation perpose only `id` should be page unique
|
|
||||||
queryAll: (elementOrDocument, selector) => {
|
|
||||||
return elementOrDocument.querySelectorAll(`[id="${CSS.escape(selector)}"]`);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now use it as following:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const node = await page.waitForSelector('::-p-getById(elementId)');
|
|
||||||
// OR used in conjunction with other selectors
|
|
||||||
const moreSpecificNode = await page.waitForSelector(
|
|
||||||
'.side-bar ::-p-getById(elementId)'
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Custom framework components selector
|
|
||||||
|
|
||||||
:::caution
|
|
||||||
|
|
||||||
Be careful when relying on internal APIs of libraries or frameworks. They can change at any time.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
Find Vue components by name by using Vue internals for querying:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
Puppeteer.registerCustomQueryHandler('vue', {
|
|
||||||
queryOne: (element, name) => {
|
|
||||||
const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);
|
|
||||||
do {
|
|
||||||
const currentNode = walker.currentNode;
|
|
||||||
if (
|
|
||||||
currentNode.__vnode?.ctx?.type?.name.toLowerCase() ===
|
|
||||||
name.toLocaleLowerCase()
|
|
||||||
) {
|
|
||||||
return currentNode;
|
|
||||||
}
|
|
||||||
} while (walker.nextNode());
|
|
||||||
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
Query the Vue component as following:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const element = await page.$('::-p-vue(MyComponent)');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Web Components
|
|
||||||
|
|
||||||
Web Components create their own tag so you can query them by the tag name:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const element = await page.$('my-web-component');
|
|
||||||
```
|
|
||||||
|
|
||||||
Extend `HTMLElementTagNameMap` to define types for custom tags. This allows Puppeteer to infer the return type for the ElementHandle:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
declare global {
|
|
||||||
interface HTMLElementTagNameMap {
|
|
||||||
'my-web-component': MyWebComponent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
@ -1,261 +0,0 @@
|
|||||||
# Puppeteer
|
|
||||||
|
|
||||||
[![build](https://github.com/puppeteer/puppeteer/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/puppeteer/puppeteer/actions/workflows/ci.yml)
|
|
||||||
[![npm puppeteer package](https://img.shields.io/npm/v/puppeteer.svg)](https://npmjs.org/package/puppeteer)
|
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" height="200" align="right"/>
|
|
||||||
|
|
||||||
#### [Guides](https://pptr.dev/category/guides) | [API](https://pptr.dev/api) | [FAQ](https://pptr.dev/faq) | [Contributing](https://pptr.dev/contributing) | [Troubleshooting](https://pptr.dev/troubleshooting)
|
|
||||||
|
|
||||||
> Puppeteer is a Node.js library which provides a high-level API to control
|
|
||||||
> Chrome/Chromium over the
|
|
||||||
> [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/).
|
|
||||||
> Puppeteer runs in
|
|
||||||
> [headless](https://developer.chrome.com/docs/chromium/new-headless/)
|
|
||||||
> mode by default, but can be configured to run in full ("headful")
|
|
||||||
> Chrome/Chromium.
|
|
||||||
|
|
||||||
#### What can I do?
|
|
||||||
|
|
||||||
Most things that you can do manually in the browser can be done using Puppeteer!
|
|
||||||
Here are a few examples to get you started:
|
|
||||||
|
|
||||||
- Generate screenshots and PDFs of pages.
|
|
||||||
- Crawl a SPA (Single-Page Application) and generate pre-rendered content (i.e.
|
|
||||||
"SSR" (Server-Side Rendering)).
|
|
||||||
- Automate form submission, UI testing, keyboard input, etc.
|
|
||||||
- Create an automated testing environment using the latest JavaScript and
|
|
||||||
browser features.
|
|
||||||
- Capture a
|
|
||||||
[timeline trace](https://developer.chrome.com/docs/devtools/performance/reference)
|
|
||||||
of your site to help diagnose performance issues.
|
|
||||||
- [Test Chrome Extensions](https://pptr.dev/guides/chrome-extensions).
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
To use Puppeteer in your project, run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm i puppeteer
|
|
||||||
# or using yarn
|
|
||||||
yarn add puppeteer
|
|
||||||
# or using pnpm
|
|
||||||
pnpm i puppeteer
|
|
||||||
```
|
|
||||||
|
|
||||||
When you install Puppeteer, it automatically downloads a recent version of
|
|
||||||
[Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) (~170MB macOS, ~282MB Linux, ~280MB Windows) and a `chrome-headless-shell` binary (starting with Puppeteer v21.6.0) that is [guaranteed to
|
|
||||||
work](https://pptr.dev/faq#q-why-doesnt-puppeteer-vxxx-work-with-chromium-vyyy)
|
|
||||||
with Puppeteer. The browser is downloaded to the `$HOME/.cache/puppeteer` folder
|
|
||||||
by default (starting with Puppeteer v19.0.0). See [configuration](https://pptr.dev/api/puppeteer.configuration) for configuration options and environmental variables to control the download behavior.
|
|
||||||
|
|
||||||
If you deploy a project using Puppeteer to a hosting provider, such as Render or
|
|
||||||
Heroku, you might need to reconfigure the location of the cache to be within
|
|
||||||
your project folder (see an example below) because not all hosting providers
|
|
||||||
include `$HOME/.cache` into the project's deployment.
|
|
||||||
|
|
||||||
For a version of Puppeteer without the browser installation, see
|
|
||||||
[`puppeteer-core`](#puppeteer-core).
|
|
||||||
|
|
||||||
If used with TypeScript, the minimum supported TypeScript version is `4.7.4`.
|
|
||||||
|
|
||||||
#### Configuration
|
|
||||||
|
|
||||||
Puppeteer uses several defaults that can be customized through configuration
|
|
||||||
files.
|
|
||||||
|
|
||||||
For example, to change the default cache directory Puppeteer uses to install
|
|
||||||
browsers, you can add a `.puppeteerrc.cjs` (or `puppeteer.config.cjs`) at the
|
|
||||||
root of your application with the contents
|
|
||||||
|
|
||||||
```js
|
|
||||||
const {join} = require('path');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {import("puppeteer").Configuration}
|
|
||||||
*/
|
|
||||||
module.exports = {
|
|
||||||
// Changes the cache location for Puppeteer.
|
|
||||||
cacheDirectory: join(__dirname, '.cache', 'puppeteer'),
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
After adding the configuration file, you will need to remove and reinstall
|
|
||||||
`puppeteer` for it to take effect.
|
|
||||||
|
|
||||||
See the [configuration guide](https://pptr.dev/guides/configuration) for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
#### `puppeteer-core`
|
|
||||||
|
|
||||||
For every release since v1.7.0 we publish two packages:
|
|
||||||
|
|
||||||
- [`puppeteer`](https://www.npmjs.com/package/puppeteer)
|
|
||||||
- [`puppeteer-core`](https://www.npmjs.com/package/puppeteer-core)
|
|
||||||
|
|
||||||
`puppeteer` is a _product_ for browser automation. When installed, it downloads
|
|
||||||
a version of Chrome, which it then drives using `puppeteer-core`. Being an
|
|
||||||
end-user product, `puppeteer` automates several workflows using reasonable
|
|
||||||
defaults [that can be customized](https://pptr.dev/guides/configuration).
|
|
||||||
|
|
||||||
`puppeteer-core` is a _library_ to help drive anything that supports DevTools
|
|
||||||
protocol. Being a library, `puppeteer-core` is fully driven through its
|
|
||||||
programmatic interface implying no defaults are assumed and `puppeteer-core`
|
|
||||||
will not download Chrome when installed.
|
|
||||||
|
|
||||||
You should use `puppeteer-core` if you are
|
|
||||||
[connecting to a remote browser](https://pptr.dev/api/puppeteer.puppeteer.connect)
|
|
||||||
or [managing browsers yourself](https://pptr.dev/browsers-api/).
|
|
||||||
If you are managing browsers yourself, you will need to call
|
|
||||||
[`puppeteer.launch`](https://pptr.dev/api/puppeteer.puppeteernode.launch) with
|
|
||||||
an explicit
|
|
||||||
[`executablePath`](https://pptr.dev/api/puppeteer.launchoptions)
|
|
||||||
(or [`channel`](https://pptr.dev/api/puppeteer.launchoptions) if it's
|
|
||||||
installed in a standard location).
|
|
||||||
|
|
||||||
When using `puppeteer-core`, remember to change the import:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import puppeteer from 'puppeteer-core';
|
|
||||||
```
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
Puppeteer follows the latest
|
|
||||||
[maintenance LTS](https://github.com/nodejs/Release#release-schedule) version of
|
|
||||||
Node.
|
|
||||||
|
|
||||||
Puppeteer will be familiar to people using other browser testing frameworks. You
|
|
||||||
[launch](https://pptr.dev/api/puppeteer.puppeteernode.launch)/[connect](https://pptr.dev/api/puppeteer.puppeteernode.connect)
|
|
||||||
a [browser](https://pptr.dev/api/puppeteer.browser),
|
|
||||||
[create](https://pptr.dev/api/puppeteer.browser.newpage) some
|
|
||||||
[pages](https://pptr.dev/api/puppeteer.page), and then manipulate them with
|
|
||||||
[Puppeteer's API](https://pptr.dev/api).
|
|
||||||
|
|
||||||
For more in-depth usage, check our [guides](https://pptr.dev/category/guides)
|
|
||||||
and [examples](https://github.com/puppeteer/puppeteer/tree/main/examples).
|
|
||||||
|
|
||||||
#### Example
|
|
||||||
|
|
||||||
The following example searches [developer.chrome.com](https://developer.chrome.com/) for blog posts with text "automate beyond recorder", click on the first result and print the full title of the blog post.
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import puppeteer from 'puppeteer';
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
// Launch the browser and open a new blank page
|
|
||||||
const browser = await puppeteer.launch();
|
|
||||||
const page = await browser.newPage();
|
|
||||||
|
|
||||||
// Navigate the page to a URL
|
|
||||||
await page.goto('https://developer.chrome.com/');
|
|
||||||
|
|
||||||
// Set screen size
|
|
||||||
await page.setViewport({width: 1080, height: 1024});
|
|
||||||
|
|
||||||
// Type into search box
|
|
||||||
await page.type('.devsite-search-field', 'automate beyond recorder');
|
|
||||||
|
|
||||||
// Wait and click on first result
|
|
||||||
const searchResultSelector = '.devsite-result-item-link';
|
|
||||||
await page.waitForSelector(searchResultSelector);
|
|
||||||
await page.click(searchResultSelector);
|
|
||||||
|
|
||||||
// Locate the full title with a unique string
|
|
||||||
const textSelector = await page.waitForSelector(
|
|
||||||
'text/Customize and automate'
|
|
||||||
);
|
|
||||||
const fullTitle = await textSelector?.evaluate(el => el.textContent);
|
|
||||||
|
|
||||||
// Print the full title
|
|
||||||
console.log('The title of this blog post is "%s".', fullTitle);
|
|
||||||
|
|
||||||
await browser.close();
|
|
||||||
})();
|
|
||||||
```
|
|
||||||
|
|
||||||
### Default runtime settings
|
|
||||||
|
|
||||||
**1. Uses Headless mode**
|
|
||||||
|
|
||||||
By default Puppeteer launches Chrome in
|
|
||||||
[the Headless mode](https://developer.chrome.com/docs/chromium/new-headless/).
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const browser = await puppeteer.launch();
|
|
||||||
// Equivalent to
|
|
||||||
const browser = await puppeteer.launch({headless: true});
|
|
||||||
```
|
|
||||||
|
|
||||||
Before v22, Puppeteer launched the [old Headless mode](https://developer.chrome.com/docs/chromium/new-headless/) by default.
|
|
||||||
The old headless mode is now known as
|
|
||||||
[`chrome-headless-shell`](https://developer.chrome.com/blog/chrome-headless-shell)
|
|
||||||
and ships as a separate binary. `chrome-headless-shell` does not match the
|
|
||||||
behavior of the regular Chrome completely but it is currently more performant
|
|
||||||
for automation tasks where the complete Chrome feature set is not needed. If the performance
|
|
||||||
is more important for your use case, switch to `chrome-headless-shell` as following:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const browser = await puppeteer.launch({headless: 'shell'});
|
|
||||||
```
|
|
||||||
|
|
||||||
To launch a "headful" version of Chrome, set the
|
|
||||||
[`headless`](https://pptr.dev/api/puppeteer.browserlaunchargumentoptions) to `false`
|
|
||||||
option when launching a browser:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const browser = await puppeteer.launch({headless: false});
|
|
||||||
```
|
|
||||||
|
|
||||||
**2. Runs a bundled version of Chrome**
|
|
||||||
|
|
||||||
By default, Puppeteer downloads and uses a specific version of Chrome so its
|
|
||||||
API is guaranteed to work out of the box. To use Puppeteer with a different
|
|
||||||
version of Chrome or Chromium, pass in the executable's path when creating a
|
|
||||||
`Browser` instance:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const browser = await puppeteer.launch({executablePath: '/path/to/Chrome'});
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also use Puppeteer with Firefox. See
|
|
||||||
[status of cross-browser support](https://pptr.dev/faq#q-what-is-the-status-of-cross-browser-support) for
|
|
||||||
more information.
|
|
||||||
|
|
||||||
See
|
|
||||||
[`this article`](https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/)
|
|
||||||
for a description of the differences between Chromium and Chrome.
|
|
||||||
[`This article`](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/chromium_browser_vs_google_chrome.md)
|
|
||||||
describes some differences for Linux users.
|
|
||||||
|
|
||||||
**3. Creates a fresh user profile**
|
|
||||||
|
|
||||||
Puppeteer creates its own browser user profile which it **cleans up on every
|
|
||||||
run**.
|
|
||||||
|
|
||||||
#### Using Docker
|
|
||||||
|
|
||||||
See our [Docker guide](https://pptr.dev/guides/docker).
|
|
||||||
|
|
||||||
#### Using Chrome Extensions
|
|
||||||
|
|
||||||
See our [Chrome extensions guide](https://pptr.dev/guides/chrome-extensions).
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- [API Documentation](https://pptr.dev/api)
|
|
||||||
- [Guides](https://pptr.dev/category/guides)
|
|
||||||
- [Examples](https://github.com/puppeteer/puppeteer/tree/main/examples)
|
|
||||||
- [Community list of Puppeteer resources](https://github.com/transitive-bullshit/awesome-puppeteer)
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Check out our [contributing guide](https://pptr.dev/contributing) to get an
|
|
||||||
overview of Puppeteer development.
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
Our [FAQ](https://pptr.dev/faq) has migrated to
|
|
||||||
[our site](https://pptr.dev/faq).
|
|
File diff suppressed because it is too large
Load Diff
@ -39,7 +39,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[snapshot(options)](./puppeteer.accessibility.snapshot.md)
|
<span id="snapshot">[snapshot(options)](./puppeteer.accessibility.snapshot.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
signal
|
<span id="signal">signal</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
creditCard
|
<span id="creditcard">creditCard</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
height
|
<span id="height">height</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ the height of the element in pixels.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
width
|
<span id="width">width</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
border
|
<span id="border">border</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ border
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
content
|
<span id="content">content</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ content
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
height
|
<span id="height">height</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ number
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
margin
|
<span id="margin">margin</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ margin
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
padding
|
<span id="padding">padding</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ padding
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
width
|
<span id="width">width</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -8,7 +8,7 @@ sidebar_label: Browser
|
|||||||
|
|
||||||
- connected to via [Puppeteer.connect()](./puppeteer.puppeteer.connect.md) or - launched by [PuppeteerNode.launch()](./puppeteer.puppeteernode.launch.md).
|
- 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.
|
[Browser](./puppeteer.browser.md) [emits](./puppeteer.eventemitter.emit.md) various events which are documented in the [BrowserEvent](./puppeteer.browserevent.md) enum.
|
||||||
|
|
||||||
#### Signature:
|
#### Signature:
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
connected
|
<span id="connected">connected</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ Whether Puppeteer is connected to this [browser](./puppeteer.browser.md).
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
debugInfo
|
<span id="debuginfo">debugInfo</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[browserContexts()](./puppeteer.browser.browsercontexts.md)
|
<span id="browsercontexts">[browserContexts()](./puppeteer.browser.browsercontexts.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ In a newly-created [browser](./puppeteer.browser.md), this will return a single
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[close()](./puppeteer.browser.close.md)
|
<span id="close">[close()](./puppeteer.browser.close.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ Closes this [browser](./puppeteer.browser.md) and all associated [pages](./puppe
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[createBrowserContext(options)](./puppeteer.browser.createbrowsercontext.md)
|
<span id="createbrowsercontext">[createBrowserContext(options)](./puppeteer.browser.createbrowsercontext.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ This won't share cookies/cache with other [browser contexts](./puppeteer.browser
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[defaultBrowserContext()](./puppeteer.browser.defaultbrowsercontext.md)
|
<span id="defaultbrowsercontext">[defaultBrowserContext()](./puppeteer.browser.defaultbrowsercontext.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ Gets the default [browser context](./puppeteer.browsercontext.md).
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[disconnect()](./puppeteer.browser.disconnect.md)
|
<span id="disconnect">[disconnect()](./puppeteer.browser.disconnect.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ Disconnects Puppeteer from this [browser](./puppeteer.browser.md), but leaves th
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[isConnected()](./puppeteer.browser.isconnected.md)
|
<span id="isconnected">[isConnected()](./puppeteer.browser.isconnected.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ Use [Browser.connected](./puppeteer.browser.md).
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[newPage()](./puppeteer.browser.newpage.md)
|
<span id="newpage">[newPage()](./puppeteer.browser.newpage.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ Creates a new [page](./puppeteer.page.md) in the [default browser context](./pup
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[pages()](./puppeteer.browser.pages.md)
|
<span id="pages">[pages()](./puppeteer.browser.pages.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ If there ar multiple [browser contexts](./puppeteer.browsercontext.md), this ret
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[process()](./puppeteer.browser.process.md)
|
<span id="process">[process()](./puppeteer.browser.process.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -237,7 +237,7 @@ Gets the associated [ChildProcess](https://nodejs.org/api/child_process.html#cla
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[target()](./puppeteer.browser.target.md)
|
<span id="target">[target()](./puppeteer.browser.target.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ Gets the [target](./puppeteer.target.md) associated with the [default browser co
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[targets()](./puppeteer.browser.targets.md)
|
<span id="targets">[targets()](./puppeteer.browser.targets.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -261,7 +261,7 @@ In case of multiple [browser contexts](./puppeteer.browsercontext.md), this retu
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[userAgent()](./puppeteer.browser.useragent.md)
|
<span id="useragent">[userAgent()](./puppeteer.browser.useragent.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ Gets this [browser's](./puppeteer.browser.md) original user agent.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[version()](./puppeteer.browser.version.md)
|
<span id="version">[version()](./puppeteer.browser.version.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ The format of [Browser.version()](./puppeteer.browser.version.md) might change w
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[waitForTarget(predicate, options)](./puppeteer.browser.waitfortarget.md)
|
<span id="waitfortarget">[waitForTarget(predicate, options)](./puppeteer.browser.waitfortarget.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ This will look all open [browser contexts](./puppeteer.browsercontext.md).
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[wsEndpoint()](./puppeteer.browser.wsendpoint.md)
|
<span id="wsendpoint">[wsEndpoint()](./puppeteer.browser.wsendpoint.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
defaultViewport
|
<span id="defaultviewport">defaultViewport</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ Sets the viewport for each page.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
ignoreHTTPSErrors
|
<span id="ignorehttpserrors">ignoreHTTPSErrors</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ Whether to ignore HTTPS errors during navigation.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
protocol
|
<span id="protocol">protocol</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ protocol
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
protocolTimeout
|
<span id="protocoltimeout">protocolTimeout</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ Timeout setting for individual protocol (CDP) calls.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
slowMo
|
<span id="slowmo">slowMo</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ Slows down Puppeteer operations by the specified amount of milliseconds to aid d
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetFilter
|
<span id="targetfilter">targetFilter</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -60,7 +60,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
closed
|
<span id="closed">closed</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ Whether this [browser context](./puppeteer.browsercontext.md) is closed.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
id
|
<span id="id">id</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[browser()](./puppeteer.browsercontext.browser.md)
|
<span id="browser">[browser()](./puppeteer.browsercontext.browser.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ Gets the [browser](./puppeteer.browser.md) associated with this [browser context
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[clearPermissionOverrides()](./puppeteer.browsercontext.clearpermissionoverrides.md)
|
<span id="clearpermissionoverrides">[clearPermissionOverrides()](./puppeteer.browsercontext.clearpermissionoverrides.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ Clears all permission overrides for this [browser context](./puppeteer.browserco
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[close()](./puppeteer.browsercontext.close.md)
|
<span id="close">[close()](./puppeteer.browsercontext.close.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ Closes this [browser context](./puppeteer.browsercontext.md) and all associated
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[isIncognito()](./puppeteer.browsercontext.isincognito.md)
|
<span id="isincognito">[isIncognito()](./puppeteer.browsercontext.isincognito.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ In Chrome, the [default browser context](./puppeteer.browser.defaultbrowserconte
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[newPage()](./puppeteer.browsercontext.newpage.md)
|
<span id="newpage">[newPage()](./puppeteer.browsercontext.newpage.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ Creates a new [page](./puppeteer.page.md) in this [browser context](./puppeteer.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[overridePermissions(origin, permissions)](./puppeteer.browsercontext.overridepermissions.md)
|
<span id="overridepermissions">[overridePermissions(origin, permissions)](./puppeteer.browsercontext.overridepermissions.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ Grants this [browser context](./puppeteer.browsercontext.md) the given `permissi
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[pages()](./puppeteer.browsercontext.pages.md)
|
<span id="pages">[pages()](./puppeteer.browsercontext.pages.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ Gets a list of all open [pages](./puppeteer.page.md) inside this [browser contex
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[targets()](./puppeteer.browsercontext.targets.md)
|
<span id="targets">[targets()](./puppeteer.browsercontext.targets.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ Gets all active [targets](./puppeteer.target.md) inside this [browser context](.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[waitForTarget(predicate, options)](./puppeteer.browsercontext.waitfortarget.md)
|
<span id="waitfortarget">[waitForTarget(predicate, options)](./puppeteer.browsercontext.waitfortarget.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
targetchanged
|
<span id="targetchanged">targetchanged</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ targetchanged
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetcreated
|
<span id="targetcreated">targetcreated</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ targetcreated
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetdestroyed
|
<span id="targetdestroyed">targetdestroyed</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
proxyBypassList
|
<span id="proxybypasslist">proxyBypassList</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ Bypass the proxy for the given list of hosts.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
proxyServer
|
<span id="proxyserver">proxyServer</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
disconnected
|
<span id="disconnected">disconnected</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ undefined
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetchanged
|
<span id="targetchanged">targetchanged</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ targetchanged
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetcreated
|
<span id="targetcreated">targetcreated</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ targetcreated
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
targetdestroyed
|
<span id="targetdestroyed">targetdestroyed</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
args
|
<span id="args">args</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Additional command line arguments to pass to the browser instance.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
debuggingPort
|
<span id="debuggingport">debuggingPort</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ Specify the debugging port number to use
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
devtools
|
<span id="devtools">devtools</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Whether to auto-open a DevTools panel for each tab. If this is set to `true`, th
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
headless
|
<span id="headless">headless</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ Whether to run the browser in headless mode.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
userDataDir
|
<span id="userdatadir">userDataDir</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -54,7 +54,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[connection()](./puppeteer.cdpsession.connection.md)
|
<span id="connection">[connection()](./puppeteer.cdpsession.connection.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[detach()](./puppeteer.cdpsession.detach.md)
|
<span id="detach">[detach()](./puppeteer.cdpsession.detach.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Detaches the cdpSession from the target. Once detached, the cdpSession object wo
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[id()](./puppeteer.cdpsession.id.md)
|
<span id="id">[id()](./puppeteer.cdpsession.id.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ Returns the session's id.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[send(method, params, options)](./puppeteer.cdpsession.send.md)
|
<span id="send">[send(method, params, options)](./puppeteer.cdpsession.send.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -25,14 +25,14 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[SessionAttached](./puppeteer.cdpsessionevent.sessionattached.md)
|
<span id="sessionattached">[SessionAttached](./puppeteer.cdpsessionevent.sessionattached.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[SessionDetached](./puppeteer.cdpsessionevent.sessiondetached.md)
|
<span id="sessiondetached">[SessionDetached](./puppeteer.cdpsessionevent.sessiondetached.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
sessionattached
|
<span id="sessionattached">sessionattached</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ sessionattached
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
sessiondetached
|
<span id="sessiondetached">sessiondetached</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
offset
|
<span id="offset">offset</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
timeout
|
<span id="timeout">timeout</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
sidebar_label: CommonEventEmitter
|
||||||
|
---
|
||||||
|
|
||||||
|
# CommonEventEmitter interface
|
||||||
|
|
||||||
|
#### Signature:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
export interface CommonEventEmitter<Events extends Record<EventType, unknown>>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
<table><thead><tr><th>
|
||||||
|
|
||||||
|
Method
|
||||||
|
|
||||||
|
</th><th>
|
||||||
|
|
||||||
|
Description
|
||||||
|
|
||||||
|
</th></tr></thead>
|
||||||
|
<tbody><tr><td>
|
||||||
|
|
||||||
|
<span id="emit">[emit(type, event)](./puppeteer.commoneventemitter.emit.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
|
||||||
|
<span id="listenercount">[listenerCount(event)](./puppeteer.commoneventemitter.listenercount.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
|
||||||
|
<span id="off">[off(type, handler)](./puppeteer.commoneventemitter.off.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
|
||||||
|
<span id="on">[on(type, handler)](./puppeteer.commoneventemitter.on.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
|
||||||
|
<span id="once">[once(type, handler)](./puppeteer.commoneventemitter.once.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
|
||||||
|
<span id="removealllisteners">[removeAllListeners(event)](./puppeteer.commoneventemitter.removealllisteners.md)</span>
|
||||||
|
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
</tbody></table>
|
@ -39,7 +39,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
browserRevision
|
<span id="browserrevision">browserRevision</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ The pinned browser version supported by the current Puppeteer version.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
cacheDirectory
|
<span id="cachedirectory">cacheDirectory</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ Can be overridden by `PUPPETEER_CACHE_DIR`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
defaultProduct
|
<span id="defaultproduct">defaultProduct</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ Can be overridden by `PUPPETEER_PRODUCT`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
downloadBaseUrl
|
<span id="downloadbaseurl">downloadBaseUrl</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ Either https://storage.googleapis.com/chrome-for-testing-public or https://archi
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
executablePath
|
<span id="executablepath">executablePath</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ Can be overridden by `PUPPETEER_EXECUTABLE_PATH`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
experiments
|
<span id="experiments">experiments</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ Defines experimental options for Puppeteer.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
logLevel
|
<span id="loglevel">logLevel</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ Tells Puppeteer to log at the given level.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
skipChromeDownload
|
<span id="skipchromedownload">skipChromeDownload</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ Can be overridden by `PUPPETEER_SKIP_CHROME_DOWNLOAD`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
skipChromeHeadlessShellDownload
|
<span id="skipchromeheadlessshelldownload">skipChromeHeadlessShellDownload</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -240,7 +240,7 @@ Can be overridden by `PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
skipDownload
|
<span id="skipdownload">skipDownload</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -261,7 +261,7 @@ Can be overridden by `PUPPETEER_SKIP_DOWNLOAD`.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
temporaryDirectory
|
<span id="temporarydirectory">temporaryDirectory</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -29,7 +29,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[(constructor)(url, transport, delay, timeout)](./puppeteer.connection._constructor_.md)
|
<span id="_constructor_">[(constructor)(url, transport, delay, timeout)](./puppeteer.connection._constructor_.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
timeout
|
<span id="timeout">timeout</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[createSession(targetInfo)](./puppeteer.connection.createsession.md)
|
<span id="createsession">[createSession(targetInfo)](./puppeteer.connection.createsession.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[dispose()](./puppeteer.connection.dispose.md)
|
<span id="dispose">[dispose()](./puppeteer.connection.dispose.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[fromSession(session)](./puppeteer.connection.fromsession.md)
|
<span id="fromsession">[fromSession(session)](./puppeteer.connection.fromsession.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[send(method, params, options)](./puppeteer.connection.send.md)
|
<span id="send">[send(method, params, options)](./puppeteer.connection.send.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[session(sessionId)](./puppeteer.connection.session.md)
|
<span id="session">[session(sessionId)](./puppeteer.connection.session.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ Description
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[url()](./puppeteer.connection.url.md)
|
<span id="url">[url()](./puppeteer.connection.url.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -35,7 +35,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
onclose
|
<span id="onclose">onclose</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ onclose
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
onmessage
|
<span id="onmessage">onmessage</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -82,14 +82,14 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[close()](./puppeteer.connectiontransport.close.md)
|
<span id="close">[close()](./puppeteer.connectiontransport.close.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[send(message)](./puppeteer.connectiontransport.send.md)
|
<span id="send">[send(message)](./puppeteer.connectiontransport.send.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -37,7 +37,7 @@ Default
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
browserURL
|
<span id="browserurl">browserURL</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ string
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
browserWSEndpoint
|
<span id="browserwsendpoint">browserWSEndpoint</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ string
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
headers
|
<span id="headers">headers</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ Headers to use for the web socket connection.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
transport
|
<span id="transport">transport</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
@ -29,7 +29,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[(constructor)(type, text, args, stackTraceLocations)](./puppeteer.consolemessage._constructor_.md)
|
<span id="_constructor_">[(constructor)(type, text, args, stackTraceLocations)](./puppeteer.consolemessage._constructor_.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ Description
|
|||||||
</th></tr></thead>
|
</th></tr></thead>
|
||||||
<tbody><tr><td>
|
<tbody><tr><td>
|
||||||
|
|
||||||
[args()](./puppeteer.consolemessage.args.md)
|
<span id="args">[args()](./puppeteer.consolemessage.args.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ An array of arguments passed to the console.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[location()](./puppeteer.consolemessage.location.md)
|
<span id="location">[location()](./puppeteer.consolemessage.location.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ The location of the console message.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[stackTrace()](./puppeteer.consolemessage.stacktrace.md)
|
<span id="stacktrace">[stackTrace()](./puppeteer.consolemessage.stacktrace.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ The array of locations on the stack of the console message.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[text()](./puppeteer.consolemessage.text.md)
|
<span id="text">[text()](./puppeteer.consolemessage.text.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ The text of the console message.
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
|
|
||||||
[type()](./puppeteer.consolemessage.type.md)
|
<span id="type">[type()](./puppeteer.consolemessage.type.md)</span>
|
||||||
|
|
||||||
</td><td>
|
</td><td>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user