Loading...
Loading...
Write the release notes for a Playwright release - the Node.js notes in docs/src/release-notes-js.md together with the Python, Java and .NET translations, and the GitHub markdown for each language's release. Use when asked to write, translate or publish release notes.
npx skill4agent add microsoft/playwright playwright-release-notes1.xx1.64## Version 1.xxdocs/src/| Language | Notes | Docs base URL | GitHub release in |
|---|---|---|---|
| Node.js | | | |
| Python | | | |
| Java | | | |
| .NET | | | |
docs/src/release-notes-js.md## Version 1.xx### New APIs####### Breaking Changes ⚠️### Announcements### Browser Versionsnode utils/print_versions.js[`method: Page.frameLocator`][`property: Page.webmcp`][`event: Page.dialogClosed`][`option: Tracing.start.ariaSnapshots`][Locator][test locks](./test-parallel.md#test-locks)release-notes-python.mdrelease-notes-java.mdrelease-notes-csharp.md## Version 1.xxVersion 1.63### New APIs####### Breaking Changes ⚠️### Announcements### Browser Versions@playwright/testtest.*npx playwright testtsconfigdeviceslangspythonjavacsharplangsdocs/src/api/docs/src/api/params.mdlangsrecordVideoFpslangs: csharp, java, pythonrecordVideo.fpsalias-<lang>alias-java: isVisibleLocatorAssertions.toBeVisible../playwright-python/playwright/sync_api/_generated.py../playwright-java/playwright/src/main/java/com/microsoft/playwright/../playwright-dotnet/src/Playwright/API/Generated/playwright.config.tsScreencast.startScreencast.showActions[`option: Browser.newContext.recordVideoFps`]*-js.mdnpm run docinfrapythonjavacsharppage.get_by_role("button").click()TrueFalseNonepage.get_by_role("button", name="Save")size={"width": 1920, "height": 1080}"button""ai"page.on("dialogclosed", handler)expect(locator).to_have_text([...])print(...)alias-pythonroute.continue_()locator.or_()page.expect_request()playwright installnpx playwright install| Node.js | Java |
|---|---|
| |
| |
options object | options builder |
object literal | value class |
| |
property | getter |
event | |
| |
| the alias, e.g. |
| |
"array", | "list", |
| Node.js | .NET |
|---|---|
| |
| |
options object | options initializer |
nested object | |
object literal | |
| |
string-literal union value | enum member |
property | property |
event | |
| |
| |
members with | the alias, e.g. |
union-typed option, e.g. | one property per type, e.g. |
| |
option names in prose ( | |
docs: release notes for v1.xxrelease-1.xxplaywright-cherry-pick## Version 1.xxrelease-1.xx## Version 1.xx############| Macro | Path after the docs base URL | Node.js | Python | Java | .NET |
|---|---|---|---|---|---|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
class-APIRequestContext.addCookiesapi-request-context-add-cookies-option-<name>-event-<name>docs/src/api/isVisible()#locator-assertions-to-be-visiblepageapiRequestContexttestConfig()on('<event in lower case>')expect(locator).expect(page).expect(response).browser_contextapi_request_context()()_generated.py@propertyon("<event in lower case>")expect(locator).alias-java()on<Event>()assertThat(locator).IPageAPIRequestContextI<Class>.csAsync()()Expect(Locator).id=page-webmcp>grep -oE 'https://playwright\.dev/[^) ]+' <notes-file> | sort -u | while read -r url; do
page=${url%%#*}
html=$(curl -sfL "$page") || { echo "MISSING PAGE $url"; continue; }
if [[ "$url" == *"#"* ]]; then
anchor=${url#*#}
grep -qE "id=\"?${anchor}[\" >]" <<<"$html" || echo "MISSING ANCHOR $url"
fi
done[Page. DialogClosed][`HttpCredentialsList `]# every language
grep -nE '\[`(method|property|event|option|param): |\]\(\./|\[[A-Z][A-Za-z]*\]([^(]|$)|\[[A-Za-z_]+\. |\[`[^`]+ `\]' <notes-file>
# Python: camelCase names in link text
grep -nE '\[[a-z_]+\.[a-z_]*[A-Z]|\[`[a-z]+[A-Z]' <notes-file>
# Java: JS-style events, assertions and properties
grep -nE "\.on\('|\b(toBe|toHave|toContain|toMatch)[A-Z]|\bawait\b|\barray\b|\bundefined\b|\[[a-z][A-Za-z]*\.[a-z][A-Za-z]*\]\(" <notes-file>
# .NET: lower-case classes or members, JS-style events
grep -nE "\.on\('|\bundefined\b|\[[a-z][A-Za-z]*\.|\[[A-Z][A-Za-z]*\.[a-z]|\[Expect\([a-z]" <notes-file>