How can DevTools windows be treated as a page in Puppeteer?
PuppeteerDevTools windows can be treated as regular pages by enabling the handleDevToolsAsPage option when launching or connectin...
Comprehensive glossary of web scraping, crawling, and API terms. Learn the essential concepts and terminology used in web data extraction.
DevTools windows can be treated as regular pages by enabling the handleDevToolsAsPage option when launching or connectin...
BackendNodeId is exposed in the a11y snapshot. Each node in the snapshot includes a backendNodeId that lets you map acce...
Use the capability to retrieve detailed initiator data from CDP when available, and filter out goog: data from events by...
This feature allows opening a page in a tab or a window. newPage() can now be called with window options to choose where...
Overview Landmarks such as header, nav, main, aside, and footer provide semantic regions that assist screen readers and ...
The CDP message ID generator can be configured by passing a custom idGenerator to the Connection constructor. This enabl...
To stop the xdg-open popup in Puppeteer, configure a Chrome policy URLAllowlist and use a Chrome binary that reads that ...
Summary This change adds a public getter to CdpBrowserContext to expose the internal Connection object. It returns the p...
How to expose the url property for links If you need the full URL of a link in Puppeteer, use the url property that was ...
Summary Duplicate header values should normally be merged into a single header value separated by a comma and a space. T...
Fetch.enable wasn't found is raised when trying to enable the Fetch domain for a worker. The fix is to ignore this error...
Puppeteer now dispatches each CDP message in its own JavaScript task by scheduling dispatch with setTimeout. This ensure...
To open DevTools for a page in Puppeteer, use the new Page.openDevTools() method. It calls the DevTools interface for th...
Use the ignoreCache option with Page.reload to reload while ignoring the browser cache. ``js await page.reload({ ignoreC...
Solution Use the Emulation.setUserAgentOverride command via a CDP session to override the user agent instead of relying ...
The deprecation note indicates that the HTTPRequest.postData API is deprecated in Puppeteer. This means you should avoid...
Fixes Puppeteer not waiting for all targets when connecting by only awaiting child targets for tab targets. When connect...
To align with the protocol behavior, create the Response when the responseStarted event fires, rather than after the res...
Summary The pageerror event may emit not only Error objects but also values of unknown type. Treat the payload as unknow...
browser.close() and browser.disconnect() both end your current control flow, but they affect the browser lifecycle diffe...
The test server was removed from the release-please workflow to simplify the release process and remove an unnecessary e...
If you run into TS18028 private identifiers errors when compiling Puppeteer types with TypeScript, set the TypeScript ta...
To fix the TS18028 error, set the TypeScript target to ES2015 or higher. The error occurs because private identifiers (#...
Firefox currently mutates the headers object returned by request.headers() in a way that does not reflect in the respons...
This was fixed to prevent accidental mutations of the underlying headers. HttpRequest.headers() no longer allows mutatin...
Summary Firefox addon pages navigated via moz-extension:// are treated as webextension contexts. Puppeteer currently doe...