NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2524 most downloaded on npm
A high-level API to control headless Chrome over the DevTools Protocol
Last release 6 days ago
14 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
347 releases · first in 2018
### Bug Fixes * internal lazy params
fix bounding box visibility conditions
One column per quarter.
FirefoxLauncher should not use BrowserFetcher in puppeteer-core (#8920) (f2e8de7), closes #8919
add missing code coverage ranges that span only a single character
restore deferred promise debugging
chromium: roll to Chromium 106.0.5249.0 (r1036745)
remove root from WaitForSelectorOptions
root from WaitForSelectorOptions (#8848)deprecate root in WaitForSelectorOptions
ExecutionContext (#8792) (b5da718)root in WaitForSelectorOptions (#8795) (65a5ce8)waitForTimeout (#8793) (8f612d5)resolve target manager init if no existing targets detected (#8748) (8cb5043), closes #8747
With Chromium, Puppeteer will now attach to page/iframe targets immediately to allow reliable configuration of targets.
chromium: roll to Chromium 105.0.5173.0 (r1022525)
taking a screenshot with null viewport should be possible (#8680) (2abb9f0), closes #8673
### Bug Fixes * import URL
expose the page getter on Frame
### Bug Fixes * extends ElementHandle to Nodes
### Features * add documentation (#8593) (066f440) ### Bug Fixes * remove unused imports
### Bug Fixes * export ElementHandle
ElementHandle (e0198a7)chromium: roll to Chromium 104.0.5109.0 (r1011831)
CSS coverage should work with empty stylesheets (#8570) (383e855), closes #8535
### Bug Fixes * infer unioned handles
type inference for evaluation types
avoid instanceof Object check in isErrorLike
use OS-independent abs. path check
use absolute URL for EVALUATION_SCRIPT_URL (#8481) (e142560), closes #8424
use isPageTargetCallback in Browser::pages()
kill browser process when 'taskkill' fails on Windows
add waitForXPath to ElementHandle
strict mode fixes for HTTPRequest/Response classes
add back and forward mouse buttons
chromium: roll to Chromium 101.0.4950.0 (r982053)
chromium downloading hung at 99%
### Bug Fixes * waitForNavigation in OOPIFs
chromium: roll to Chromium 100.0.4889.0 (r970485)
regression in --user-data-dir handling
add support for async waitForTarget
Frame._client through getter (#8041) (e9278fc)always use ENV executable path when present
### Bug Fixes * puppeteer: revert: esm modules
puppeteer: export esm modules in package.json
add more models to DeviceDescriptors
package.json: update node-fetch package
use content box for OOPIF offset calculations
chromium: roll to Chromium 98.0.4758.0 (r950341)
disable a test failing on Firefox
typo in 'already-handled' constant of the request interception API
handle extraInfo events even if event.hasExtraInfo === false (#7808) (6ee2feb), closes #7805
chromium: roll to Chromium 97.0.4692.0 (r938248)
headless when devtools is true (#7748) (9f9b4ed)oop iframes: integrate OOP iframes with the frame manager
use non-deprecated tracing categories api
Page.waitForNetworkIdle() (#5140) (3c6029c)api: make page.isDragInterceptionEnabled a method (#7419) (dd470c7), closes #7150
page.isDragInterceptionEnabled a method (#7419) (dd470c7), closes #7150add a streaming version for page.pdf
Node.js 10 is no longer supported.
waitForInitialPage (#7105) (2605309), closes #3630### Bug Fixes * make targetFilter synchronous
### Features * add option to filter targets (#7192) (ec3fc2e) ### Bug Fixes * change rm -rf to rimraf
filechooser: FileChooser.cancel() is now synchronous.
$ and $$ selectors generic (#6883) (b349c91)Your coding agent can read these notes before it upgrades. Set up the MCP server →