mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
Node.js API for Chrome
d3f0e6ca09
The provides support for Network interception for the WebDriver protocol. More information on current state of WebDriver support can be found [here](https://pptr.dev/webdriver-bidi). This is a Puppteer side implementation for the Network interception feature, some vendors may not support all properties that you can send through Puppeteer, please be aware. You should try to display the error in your event handler as so: ```ts page.on('request', request => { void request .continue({ // Your overrides }) .catch(error => { // The error will not propagate to the process console.error(error); // If you want to stop the process in NodeJS also use process.exit(1); }); }); const response = await page.goto('<URL>'); ``` The following issues track state of vendor implementation, that Puppeteer relies on: Chrome: https://github.com/GoogleChromeLabs/chromium-bidi/issues/2035 Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1853882 and https://bugzilla.mozilla.org/show_bug.cgi?id=1850680 Release Notes: feat(webdriver): support page.setExtraHTTPHeaders Source-Link: |
||
---|---|---|
.devcontainer | ||
.github | ||
.vscode | ||
docker | ||
docs | ||
examples | ||
packages | ||
test | ||
test-d | ||
tools | ||
website | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.eslintrc.types.cjs | ||
.gitattributes | ||
.gitignore | ||
.mocharc.cjs | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc.cjs | ||
.release-please-manifest.json | ||
Herebyfile.mjs | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
release-please-config.json | ||
SECURITY.md | ||
tsconfig.base.json | ||
tsdoc.json | ||
versions.js |
Puppeteer
Puppeteer is a Node.js library which provides a high-level API to control Chrome/Chromium over the DevTools Protocol. Puppeteer runs in headless mode by default, but can be configured to run in full ("headful") Chrome/Chromium.
Get started | API | FAQ | Contributing | Troubleshooting
Example
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();
})();