ReadonlyhasAbortSignal support via the signal option on waiting APIs.
ReadonlyhasapiResponse.timing() — real resource timing for an API response.
ReadonlyhasReadonlyhasReadonlyhasReadonlyhaslocator.ariaSnapshotJSON() / page.ariaSnapshotJSON() — JSON, not YAML.
ReadonlyhasReadonlyhasReadonlyhasReadonlyhaspage.consoleMessages() / page.pageErrors() accept a filter option.
The base methods exist at the 1.57 floor, but take no arguments there.
JavaScript silently ignores surplus arguments, so passing { filter } on an
older runtime returns every message while the caller believes it received
only the filtered set — wrong data rather than a crash. Always guard the
option on this flag.
ReadonlyhasReadonlyhaspage.on('dialogclosed') / browserContext.on('dialogclosed').
ReadonlyhasReadonlyhasReadonlyhashttpCredentials accepts an array, for per-origin credentials.
No "Added in" badge exists for the array form — the API docs show the
Object | Array<Object> union without a version note, so the usual
badge check could not settle it. Established instead by diffing the
published type definitions: [email protected] declares
httpCredentials?: {…}|Array<{…}> (types.d.ts:11450), while 1.57.0 and
1.62.0 contain no array form at all.
Declared but not consumed: Praman has no httpCredentials call site, and
the six auth strategies are form/SAML/certificate based rather than HTTP
Basic. Catalogued so the record is complete and so any future use is
guarded — an array passed to an older runtime would be read as a single
malformed credentials object, not rejected.
ReadonlyhasReadonlyhasReadonlyhasReadonlyhasReadonlyhaslocator.waitForFunction() — element-scoped wait predicates.
Verified absent in 1.60 and 1.61, present in 1.62. This is additive to waitForUI5Stable, not a replacement: UI5 stability is a global property read off the core, while this is scoped to one element and receives that element as its argument.
ReadonlyhasstorageState({ opfs }) — origin private file system in storage state.
ReadonlyhasReadonlyhastestConfig.retryStrategy, including 'isolated'.
ReadonlyhasReadonlyhasReadonlyhasReadonlyhasReadonlyhasscroll: 'auto' | 'none' on actions — opt out of auto scroll-into-view.
Added in v1.62, per the API doc badge (locator.click option scroll).
Declared but not yet consumed, deliberately: passing { scroll: 'none' }
to an older runtime is silently ignored, so the caller would believe
it had opted out while Playwright scrolled anyway — the same trap
PlaywrightFeatures.hasConsoleMessageFilter documents. Any future
use of the option must guard on this flag.
ReadonlyhasReadonlyhasReadonlyhastest.step() accepts subtitle and params, surfaced on TestStep.
Readonlyhaspage.frameLocator() / frame.frameLocator() with the selector omitted.
ReadonlyhasReadonlyhastest() and test.describe() accept lock — named mutual exclusion.
Tests holding the same lock name never run concurrently across files, workers and projects. Directly relevant to SAP: FLP user settings, a shared backend customizing transaction, or a single named test user are all global state that parallel specs otherwise corrupt.
There is no equivalent on the 1.57 floor — fullyParallel: false is
per-project and far blunter — so per the module policy above, callers
must throw rather than degrade when this is unavailable.
ReadonlyhasReadonlyhasReadonlyhasReadonlyhaslocator.visible() — the supported replacement for the :visible
pseudo-class.
ReadonlyhasReadonlyhasscreenshot({ type: 'webp' }) — smaller failure artifacts.
Readonlyhas
Feature flags indicating available Playwright APIs.
Example