NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3635 most downloaded on Packagist
Modern PHP library for Playwright automation: browsing, scraping, screenshots, testing, and more.
Last release 17 days ago
20 Sep 2026
Release timing varies
gaps range from 1 weeks to 5 months
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
11 months old
7 releases · first in 2025
One column per month.
Targeted browser installation through playwright-install [browser...]
playwright-install [browser...] (#165)packageManager declaration or --package-manager-bin (#168)Route::fulfill() decodes base64 response bodies (#162)playwright-install keeps pnpm dependencies and lockfiles isolated from enclosing workspaces (#167)Full Changelog: v1.4.0...v1.5.0
Standardize on bin/.gitignore for bin/ artifacts by @kbond in #131
Full Changelog: v1.3.1...v1.4.0
BrowserInterface::browserType() and BrowserContextInterface::browser() (#133)waitForFunction() (#148)BrowserInterface::bind() and unbind() (#152)expect()->toBeAttached() (#154)expect() assertions (#154)expect()->toHaveClass() matches the class attribute exactly (#137)expect()->toBeEmpty() evaluates input values and text content in the DOM (#154)expect()->not() applies to one assertion instead of leaking to later assertions on the same object (#154)Resolve input file paths before sending by @smnandre in #127
Full Changelog: v1.3.0...v1.3.1
Locator::setInputFiles() and Page::setInputFiles() resolve relative paths before sending them to the Node bridge (#127)connect() and connectOverCDP() logs (#128)Make PageInterface::waitForSelector match implementation by @stloyd in #74
PageInterface::waitForSelector match implementation by @stloyd in #74PlaywrightConfig mandatory by @stloyd in #72Full Changelog: v1.2.0...v1.3.0
Page::waitForFunction() (#87)BrowserContextInterface::tracing() exposing the Tracing API; expect() assertions are recorded as named trace groups (#114)BrowserBuilder::withChannel(), withProxy() and withDownloadsPath() (#121)@method annotations for methods already shipped by the concrete classes: BrowserContext::clock(), BrowserContext::setGeolocation(), BrowserContext::setOffline(), Dialog::page(), Keyboard::insertText(), Page::pause(), Response::headerValue(). They move to real interface declarations in the next major (#108)PlaywrightConfig is now mandatory on the Browser, BrowserContext, Page and BrowserBuilder constructors (#72)Page::getBy*() locators accept string|Regex, matching the Playwright JS API (#76)PW_TRACE is the single tracing switch; contexts created from PlaywrightConfigBuilder::fromEnv() record a trace saved on close (#111)PlaywrightConfig applies channel, proxy, downloadsDir, videosDir and minNodeVersion; videosDir also applies to the default context (#121)PageInterface::waitForSelector() returns LocatorInterface instead of ?LocatorInterface, matching the implementation (#74)Page::bringToFront() is implemented (#89)Page::unroute() reaches the page instead of the context (#110)Page::setDefaultTimeout() and setDefaultNavigationTimeout() are registered server-side (#109)BrowserContext::setStorageState() is registered server-side (#112)postDataBuffer (#116)LspFraming recovers from stray non-LSP output on the stream (#106)ProcessJsonRpcClient clears the Process output buffers (#103)waitForActionable honours the options passed to override the timeout (#82)Add support for PLAYWRIGHT_BROWSERS_PATH by @smnandre in #71
PLAYWRIGHT_BROWSERS_PATH by @smnandre in #71$page->waitForLoadState() handling by @stloyd in #65ScreenshotHelper::slugifyUrl() by @stloyd in #69Full Changelog: v1.1.0...v1.1.1
PLAYWRIGHT_BROWSERS_PATH is read by PlaywrightConfigBuilder::fromEnv() and
forwarded to the Node.js server, so a shared browser installation can be
reused instead of a per-project one (#71)Page::waitForLoadState() no longer fails with Unknown action: the action
was never registered in the Node bridge (#65)Add support for PDF generation by @smnandre in #54
Full Changelog: v1.0.0...v1.1.0
Page::pdf()Options classes (e.g., ClickOptions, PdfOptions)StringableInitial stable release of Playwright PHP
Your coding agent can read these notes before it upgrades. Set up the MCP server →