diff --git a/dotnet/versioned_docs/images/cft-logo-change.png b/dotnet/versioned_docs/images/cft-logo-change.png
new file mode 100644
index 00000000000..89c5695e29f
Binary files /dev/null and b/dotnet/versioned_docs/images/cft-logo-change.png differ
diff --git a/dotnet/versioned_docs/images/speedboard.png b/dotnet/versioned_docs/images/speedboard.png
new file mode 100644
index 00000000000..e6fa26ab611
Binary files /dev/null and b/dotnet/versioned_docs/images/speedboard.png differ
diff --git a/dotnet/versioned_docs/version-stable/actionability.mdx b/dotnet/versioned_docs/version-stable/actionability.mdx
index 62de3c36f0a..a8accf11cee 100644
--- a/dotnet/versioned_docs/version-stable/actionability.mdx
+++ b/dotnet/versioned_docs/version-stable/actionability.mdx
@@ -123,7 +123,6 @@ For example, consider a scenario where Playwright will click `Sign Up` button re
[Receives Events]: #receives-events "Receives Events"
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api-testing.mdx b/dotnet/versioned_docs/version-stable/api-testing.mdx
index 53f8f232501..7b184eb463f 100644
--- a/dotnet/versioned_docs/version-stable/api-testing.mdx
+++ b/dotnet/versioned_docs/version-stable/api-testing.mdx
@@ -415,7 +415,6 @@ var context = await Browser.NewContextAsync(new() { StorageState = state });
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-accessibility.mdx b/dotnet/versioned_docs/version-stable/api/class-accessibility.mdx
deleted file mode 100644
index be54f8d7c9e..00000000000
--- a/dotnet/versioned_docs/version-stable/api/class-accessibility.mdx
+++ /dev/null
@@ -1,149 +0,0 @@
----
-id: class-accessibility
-title: "Accessibility"
----
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import HTMLCard from '@site/src/components/HTMLCard';
-
-
-:::warning[Deprecated]
-This class is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-:::
-
-
-The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access).
-
-Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.
-
-Rendering engines of Chromium, Firefox and WebKit have a concept of "accessibility tree", which is then translated into different platform-specific APIs. Accessibility namespace gives access to this Accessibility Tree.
-
-Most of the accessibility tree gets filtered out when converting from internal browser AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
-
-
----
-
-## Deprecated
-
-### SnapshotAsync {#accessibility-snapshot}
-
-Added before v1.9accessibility.SnapshotAsync
-
-:::warning Deprecated
-
-This method is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.
-
-:::note
-
-The Chromium accessibility tree contains nodes that go unused on most platforms and by most screen readers. Playwright will discard them as well for an easier to process tree, unless [InterestingOnly](/api/class-accessibility.mdx#accessibility-snapshot-option-interesting-only) is set to `false`.
-:::
-
-**Usage**
-
-An example of dumping the entire accessibility tree:
-
-```csharp
-var accessibilitySnapshot = await page.Accessibility.SnapshotAsync();
-Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(accessibilitySnapshot));
-```
-
-An example of logging the focused node's name:
-
-```csharp
-var accessibilitySnapshot = await page.Accessibility.SnapshotAsync();
-Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(accessibilitySnapshot));
-```
-
-**Arguments**
-- `options` `AccessibilitySnapshotOptions?` *(optional)*
- - `InterestingOnly` [bool]? *(optional)*#
-
- Prune uninteresting nodes from the tree. Defaults to `true`.
- - `Root` [ElementHandle]? *(optional)*#
-
- The root DOM element for the snapshot. Defaults to the whole page.
-
-**Returns**
-- [JsonElement]?#
-
-
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
-[APIRequest]: /api/class-apirequest.mdx "APIRequest"
-[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
-[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
-[APIResponseAssertions]: /api/class-apiresponseassertions.mdx "APIResponseAssertions"
-[Browser]: /api/class-browser.mdx "Browser"
-[BrowserContext]: /api/class-browsercontext.mdx "BrowserContext"
-[BrowserType]: /api/class-browsertype.mdx "BrowserType"
-[CDPSession]: /api/class-cdpsession.mdx "CDPSession"
-[CDPSessionEvent]: /api/class-cdpsessionevent.mdx "CDPSessionEvent"
-[Clock]: /api/class-clock.mdx "Clock"
-[ConsoleMessage]: /api/class-consolemessage.mdx "ConsoleMessage"
-[Dialog]: /api/class-dialog.mdx "Dialog"
-[Download]: /api/class-download.mdx "Download"
-[ElementHandle]: /api/class-elementhandle.mdx "ElementHandle"
-[FileChooser]: /api/class-filechooser.mdx "FileChooser"
-[FormData]: /api/class-formdata.mdx "FormData"
-[Frame]: /api/class-frame.mdx "Frame"
-[FrameLocator]: /api/class-framelocator.mdx "FrameLocator"
-[JSHandle]: /api/class-jshandle.mdx "JSHandle"
-[Keyboard]: /api/class-keyboard.mdx "Keyboard"
-[Locator]: /api/class-locator.mdx "Locator"
-[LocatorAssertions]: /api/class-locatorassertions.mdx "LocatorAssertions"
-[Mouse]: /api/class-mouse.mdx "Mouse"
-[Page]: /api/class-page.mdx "Page"
-[PageAssertions]: /api/class-pageassertions.mdx "PageAssertions"
-[Playwright]: /api/class-playwright.mdx "Playwright"
-[PlaywrightAssertions]: /api/class-playwrightassertions.mdx "PlaywrightAssertions"
-[Request]: /api/class-request.mdx "Request"
-[Response]: /api/class-response.mdx "Response"
-[Route]: /api/class-route.mdx "Route"
-[Selectors]: /api/class-selectors.mdx "Selectors"
-[TimeoutError]: /api/class-timeouterror.mdx "TimeoutError"
-[Touchscreen]: /api/class-touchscreen.mdx "Touchscreen"
-[Tracing]: /api/class-tracing.mdx "Tracing"
-[Video]: /api/class-video.mdx "Video"
-[WebError]: /api/class-weberror.mdx "WebError"
-[WebSocket]: /api/class-websocket.mdx "WebSocket"
-[WebSocketFrame]: /api/class-websocketframe.mdx "WebSocketFrame"
-[WebSocketRoute]: /api/class-websocketroute.mdx "WebSocketRoute"
-[Worker]: /api/class-worker.mdx "Worker"
-[Element]: https://developer.mozilla.org/en-US/docs/Web/API/element "Element"
-[EvaluationArgument]: /evaluating.mdx#evaluation-argument "EvaluationArgument"
-[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"
-[iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols "Iterator"
-[origin]: https://developer.mozilla.org/en-US/docs/Glossary/Origin "Origin"
-[selector]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors "selector"
-[Serializable]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable"
-[UIEvent.detail]: https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail "UIEvent.detail"
-[UnixTime]: https://en.wikipedia.org/wiki/Unix_time "Unix Time"
-[xpath]: https://developer.mozilla.org/en-US/docs/Web/XPath "xpath"
-
-[bool]: https://docs.microsoft.com/en-us/dotnet/api/system.boolean "bool"
-[Date]: https://learn.microsoft.com/en-us/dotnet/api/system.datetime "DateTime"
-[double]: https://docs.microsoft.com/en-us/dotnet/api/system.double "double"
-[byte]: https://docs.microsoft.com/en-us/dotnet/api/system.byte "byte"
-[int]: https://docs.microsoft.com/en-us/dotnet/api/system.int32 "int"
-[long]: https://docs.microsoft.com/en-us/dotnet/api/system.int64 "long"
-[void]: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/void "void"
-[string]: https://docs.microsoft.com/en-us/dotnet/api/system.string "string"
-[URL]: https://nodejs.org/api/url.html "URL"
-[Regex]: https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex "Regex"
-
-[Action]: https://docs.microsoft.com/en-us/dotnet/api/system.action-1 "Action"
-[Func]: https://docs.microsoft.com/en-us/dotnet/api/system.func-2 "Func"
-[IEnumerable]: https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerable "IEnumerable"
-[IReadOnlyList]: https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1?view=net-9.0 "IReadOnlyList"
-[IDictionary]: https://docs.microsoft.com/en-us/dotnet/api/system.collections.idictionary "IDictionary"
-[Task]: https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task?view=net-5.0 "Task"
-[IReadOnlyDictionary]: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlydictionary-2 "IReadOnlyDictionary"
-[JsonElement]: https://docs.microsoft.com/en-us/dotnet/api/system.text.json.jsonelement "JsonElement"
-
-[all available image tags]: https://mcr.microsoft.com/en-us/product/playwright/dotnet/about "all available image tags"
-[Microsoft Artifact Registry]: https://mcr.microsoft.com/en-us/product/playwright/dotnet/about "Microsoft Artifact Registry"
-[Dockerfile.noble]: https://github.com/microsoft/playwright-dotnet/blob/main/utils/docker/Dockerfile.noble "Dockerfile.noble"
diff --git a/dotnet/versioned_docs/version-stable/api/class-apirequest.mdx b/dotnet/versioned_docs/version-stable/api/class-apirequest.mdx
index 01989086592..65e10fa309a 100644
--- a/dotnet/versioned_docs/version-stable/api/class-apirequest.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-apirequest.mdx
@@ -132,7 +132,6 @@ await ApiRequest.NewContextAsync(options);
- [APIRequestContext]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-apirequestcontext.mdx b/dotnet/versioned_docs/version-stable/api/class-apirequestcontext.mdx
index b583a1bf242..4b0ec00a7a4 100644
--- a/dotnet/versioned_docs/version-stable/api/class-apirequestcontext.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-apirequestcontext.mdx
@@ -566,7 +566,6 @@ await ApiRequestContext.StorageStateAsync(options);
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-apiresponse.mdx b/dotnet/versioned_docs/version-stable/api/class-apiresponse.mdx
index d18b3c8497b..f95eda617e4 100644
--- a/dotnet/versioned_docs/version-stable/api/class-apiresponse.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-apiresponse.mdx
@@ -191,7 +191,6 @@ ApiResponse.Url
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-apiresponseassertions.mdx b/dotnet/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
index b003204b53c..acc02232408 100644
--- a/dotnet/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
@@ -45,7 +45,6 @@ Expect(Response).Not
- [APIResponseAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-browser.mdx b/dotnet/versioned_docs/version-stable/api/class-browser.mdx
index 170d2ad2ac8..36591afb4b8 100644
--- a/dotnet/versioned_docs/version-stable/api/class-browser.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-browser.mdx
@@ -624,7 +624,6 @@ Browser.Disconnected += async (_, browser) => {};
- [Browser]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-browsercontext.mdx b/dotnet/versioned_docs/version-stable/api/class-browsercontext.mdx
index 9fe131cfcc5..81ccef2eb40 100644
--- a/dotnet/versioned_docs/version-stable/api/class-browsercontext.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-browsercontext.mdx
@@ -52,13 +52,13 @@ await context.AddCookiesAsync(new[] { cookie1, cookie2 });
- `Url` [string]? *(optional)*
- Either url or domain / path are required. Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `Domain` [string]? *(optional)*
- For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either url or domain / path are required. Optional.
+ For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either `url` or both `domain` and `path` are required. Optional.
- `Path` [string]? *(optional)*
- Either url or domain / path are required Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `Expires` [float]? *(optional)*
Unix time in seconds. Optional.
@@ -1261,7 +1261,6 @@ BrowserContext.BackgroundPages
- [IReadOnlyList]<[Page]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-browsertype.mdx b/dotnet/versioned_docs/version-stable/api/class-browsertype.mdx
index 9ccd0f5dd15..f6f48e227a8 100644
--- a/dotnet/versioned_docs/version-stable/api/class-browsertype.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-browsertype.mdx
@@ -567,7 +567,6 @@ BrowserType.Name
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-cdpsession.mdx b/dotnet/versioned_docs/version-stable/api/class-cdpsession.mdx
index fcf218add1a..c8072a5d7f9 100644
--- a/dotnet/versioned_docs/version-stable/api/class-cdpsession.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-cdpsession.mdx
@@ -91,7 +91,6 @@ await CdpSession.SendAsync(method, params);
- [JsonElement?]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-cdpsessionevent.mdx b/dotnet/versioned_docs/version-stable/api/class-cdpsessionevent.mdx
index 018340872b1..7d0f3844af9 100644
--- a/dotnet/versioned_docs/version-stable/api/class-cdpsessionevent.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-cdpsessionevent.mdx
@@ -47,7 +47,6 @@ CdpSessionEvent.OnEvent += async (_, jsonElement) => {};
- [JsonElement?]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-clock.mdx b/dotnet/versioned_docs/version-stable/api/class-clock.mdx
index ed4ad039663..0a3df6d9bdd 100644
--- a/dotnet/versioned_docs/version-stable/api/class-clock.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-clock.mdx
@@ -190,7 +190,6 @@ await page.Clock.SetSystemTimeAsync("2020-02-02");
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-consolemessage.mdx b/dotnet/versioned_docs/version-stable/api/class-consolemessage.mdx
index d468abddc16..5c26fa33df7 100644
--- a/dotnet/versioned_docs/version-stable/api/class-consolemessage.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-consolemessage.mdx
@@ -117,8 +117,24 @@ ConsoleMessage.Type
**Returns**
- [string]#
+---
+
+### Worker {#console-message-worker}
+
+Added in: v1.57consoleMessage.Worker
+
+The web worker or service worker that produced this console message, if any. Note that console messages from web workers also have non-null [ConsoleMessage.Page](/api/class-consolemessage.mdx#console-message-page).
+
+**Usage**
+
+```csharp
+ConsoleMessage.Worker
+```
+
+**Returns**
+- [Worker]?#
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-dialog.mdx b/dotnet/versioned_docs/version-stable/api/class-dialog.mdx
index 0c239aea28b..b2a5706f9d1 100644
--- a/dotnet/versioned_docs/version-stable/api/class-dialog.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-dialog.mdx
@@ -149,7 +149,6 @@ Dialog.Type
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-download.mdx b/dotnet/versioned_docs/version-stable/api/class-download.mdx
index 1ead454fc71..f37fddf9b0c 100644
--- a/dotnet/versioned_docs/version-stable/api/class-download.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-download.mdx
@@ -51,6 +51,11 @@ await Download.CancelAsync();
Returns a readable stream for a successful download, or throws for a failed/canceled download.
+:::note
+
+If you don't need a readable stream, it's usually simpler to read the file from disk after the download completed. See [Download.PathAsync()](/api/class-download.mdx#download-path).
+:::
+
**Usage**
```csharp
@@ -187,7 +192,6 @@ Download.Url
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-elementhandle.mdx b/dotnet/versioned_docs/version-stable/api/class-elementhandle.mdx
index 406f1bb3a5c..95f4bdd4615 100644
--- a/dotnet/versioned_docs/version-stable/api/class-elementhandle.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-elementhandle.mdx
@@ -276,6 +276,9 @@ await ElementHandle.ClickAsync(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `Timeout` [float]? *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.SetDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.SetDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -349,6 +352,9 @@ await ElementHandle.DblClickAsync(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `Timeout` [float]? *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.SetDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.SetDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -1572,7 +1578,6 @@ This method does not work across navigations, use [Page.WaitForSelectorAsync()](
- [ElementHandle]?#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-filechooser.mdx b/dotnet/versioned_docs/version-stable/api/class-filechooser.mdx
index df3ad9642ab..ccf516d1084 100644
--- a/dotnet/versioned_docs/version-stable/api/class-filechooser.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-filechooser.mdx
@@ -113,7 +113,6 @@ await FileChooser.SetFilesAsync(files, options);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-formdata.mdx b/dotnet/versioned_docs/version-stable/api/class-formdata.mdx
index 7419df2b6f5..e708fef8400 100644
--- a/dotnet/versioned_docs/version-stable/api/class-formdata.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-formdata.mdx
@@ -119,7 +119,6 @@ FormData.Set(name, value);
- [FormData]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-frame.mdx b/dotnet/versioned_docs/version-stable/api/class-frame.mdx
index 3b49f0a7f87..bc77f685fe8 100644
--- a/dotnet/versioned_docs/version-stable/api/class-frame.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-frame.mdx
@@ -181,6 +181,9 @@ await Frame.DragAndDropAsync(source, target, options);
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `Strict` [bool]? *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -2689,7 +2692,6 @@ await Frame.WaitForTimeoutAsync(timeout);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-framelocator.mdx b/dotnet/versioned_docs/version-stable/api/class-framelocator.mdx
index df3f9feee08..e234d847ad9 100644
--- a/dotnet/versioned_docs/version-stable/api/class-framelocator.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-framelocator.mdx
@@ -532,7 +532,6 @@ FrameLocator.Nth(index);
- [FrameLocator]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-jshandle.mdx b/dotnet/versioned_docs/version-stable/api/class-jshandle.mdx
index b289757ebad..5eb6b5e3338 100644
--- a/dotnet/versioned_docs/version-stable/api/class-jshandle.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-jshandle.mdx
@@ -183,7 +183,6 @@ await JsHandle.JsonValueAsync();
- [object]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-keyboard.mdx b/dotnet/versioned_docs/version-stable/api/class-keyboard.mdx
index 29c525e9cb2..31cc0608118 100644
--- a/dotnet/versioned_docs/version-stable/api/class-keyboard.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-keyboard.mdx
@@ -226,7 +226,6 @@ await Keyboard.UpAsync(key);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-locator.mdx b/dotnet/versioned_docs/version-stable/api/class-locator.mdx
index 62f77c78daa..3126ed6cdb1 100644
--- a/dotnet/versioned_docs/version-stable/api/class-locator.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-locator.mdx
@@ -382,6 +382,9 @@ await page.Locator("canvas").ClickAsync(new() {
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `Timeout` [float]? *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.SetDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.SetDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -494,6 +497,9 @@ await Locator.DblClickAsync(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `Timeout` [float]? *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.SetDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.SetDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -545,6 +551,27 @@ await button.ClickAsync();
---
+### Description {#locator-description}
+
+Added in: v1.57locator.Description
+
+Returns locator description previously set with [Locator.Describe()](/api/class-locator.mdx#locator-describe). Returns `null` if no custom description has been set. Prefer `Locator.toString()` for a human-readable representation, as it uses the description when available.
+
+**Usage**
+
+```csharp
+var button = Page.GetByRole(AriaRole.Button).Describe("Subscribe button");
+Console.WriteLine(button.Description()); // "Subscribe button"
+
+var input = Page.GetByRole(AriaRole.Textbox);
+Console.WriteLine(input.Description()); // null
+```
+
+**Returns**
+- [string]?#
+
+---
+
### DispatchEventAsync {#locator-dispatch-event}
Added in: v1.14locator.DispatchEventAsync
@@ -647,6 +674,9 @@ await source.DragToAsync(target, new()
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `TargetPosition` TargetPosition? *(optional)*#
- `X` [float]
@@ -2476,7 +2506,6 @@ To press a special key, like `Control` or `ArrowDown`, use [Locator.PressAsync()
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-locatorassertions.mdx b/dotnet/versioned_docs/version-stable/api/class-locatorassertions.mdx
index 5d69ecf63ff..19d688f04ff 100644
--- a/dotnet/versioned_docs/version-stable/api/class-locatorassertions.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-locatorassertions.mdx
@@ -909,7 +909,6 @@ Expect(Locator).Not
- [LocatorAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-mouse.mdx b/dotnet/versioned_docs/version-stable/api/class-mouse.mdx
index ace213b7186..ae21a0397aa 100644
--- a/dotnet/versioned_docs/version-stable/api/class-mouse.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-mouse.mdx
@@ -146,7 +146,7 @@ await Mouse.MoveAsync(x, y, options);
- `options` `MouseMoveOptions?` *(optional)*
- `Steps` [int]? *(optional)*#
- Defaults to 1. Sends intermediate `mousemove` events.
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
**Returns**
- [void]#
@@ -208,7 +208,6 @@ await Mouse.WheelAsync(deltaX, deltaY);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-page.mdx b/dotnet/versioned_docs/version-stable/api/class-page.mdx
index efa5c7059b8..dfd0418fa99 100644
--- a/dotnet/versioned_docs/version-stable/api/class-page.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-page.mdx
@@ -390,6 +390,9 @@ await Page.DragAndDropAsync("#source", "#target", new()
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `Steps` [int]? *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `Strict` [bool]? *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -3248,28 +3251,6 @@ Page.Worker += async (_, worker) => {};
## Deprecated
-### Accessibility {#page-accessibility}
-
-Added before v1.9page.Accessibility
-
-:::warning Deprecated
-
-This property is discouraged. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-**Usage**
-
-```csharp
-Page.Accessibility
-```
-
-**Type**
-- [Accessibility]
-
----
-
### CheckAsync {#page-check}
Added before v1.9page.CheckAsync
@@ -4922,7 +4903,6 @@ await page.WaitForTimeoutAsync(1000);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-pageassertions.mdx b/dotnet/versioned_docs/version-stable/api/class-pageassertions.mdx
index 9952a82d1fc..50b532f3e25 100644
--- a/dotnet/versioned_docs/version-stable/api/class-pageassertions.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-pageassertions.mdx
@@ -110,7 +110,6 @@ Expect(Page).Not
- [PageAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-playwright.mdx b/dotnet/versioned_docs/version-stable/api/class-playwright.mdx
index 4b552226802..02b72eb33db 100644
--- a/dotnet/versioned_docs/version-stable/api/class-playwright.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-playwright.mdx
@@ -152,7 +152,6 @@ Playwright.Webkit
- [BrowserType]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-playwrightassertions.mdx b/dotnet/versioned_docs/version-stable/api/class-playwrightassertions.mdx
index cee9cdd51ca..81f779946e9 100644
--- a/dotnet/versioned_docs/version-stable/api/class-playwrightassertions.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-playwrightassertions.mdx
@@ -99,7 +99,6 @@ await Expect(Page).ToHaveTitleAsync("News");
- [PageAssertions]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-request.mdx b/dotnet/versioned_docs/version-stable/api/class-request.mdx
index a346c9fe0a1..edb81d78dfe 100644
--- a/dotnet/versioned_docs/version-stable/api/class-request.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-request.mdx
@@ -416,7 +416,6 @@ Request.Url
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-response.mdx b/dotnet/versioned_docs/version-stable/api/class-response.mdx
index 3b4f13d59d0..242eeee91c6 100644
--- a/dotnet/versioned_docs/version-stable/api/class-response.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-response.mdx
@@ -357,7 +357,6 @@ Response.Url
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-route.mdx b/dotnet/versioned_docs/version-stable/api/class-route.mdx
index 78748892afd..4c9217f86e5 100644
--- a/dotnet/versioned_docs/version-stable/api/class-route.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-route.mdx
@@ -308,7 +308,6 @@ Route.Request
- [Request]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-selectors.mdx b/dotnet/versioned_docs/version-stable/api/class-selectors.mdx
index efee1d802b6..7b5c4b9cd10 100644
--- a/dotnet/versioned_docs/version-stable/api/class-selectors.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-selectors.mdx
@@ -92,7 +92,6 @@ Selectors.SetTestIdAttribute(attributeName);
Test id attribute name.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-timeouterror.mdx b/dotnet/versioned_docs/version-stable/api/class-timeouterror.mdx
index 11864b08d11..d55e4f6de4b 100644
--- a/dotnet/versioned_docs/version-stable/api/class-timeouterror.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-timeouterror.mdx
@@ -28,7 +28,6 @@ catch (TimeoutException)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-touchscreen.mdx b/dotnet/versioned_docs/version-stable/api/class-touchscreen.mdx
index 9a0fe300c8f..a476512ab9c 100644
--- a/dotnet/versioned_docs/version-stable/api/class-touchscreen.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-touchscreen.mdx
@@ -45,7 +45,6 @@ await Touchscreen.TapAsync(x, y);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-tracing.mdx b/dotnet/versioned_docs/version-stable/api/class-tracing.mdx
index da363d22ed2..102e49b4f14 100644
--- a/dotnet/versioned_docs/version-stable/api/class-tracing.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-tracing.mdx
@@ -254,7 +254,6 @@ await Tracing.StopChunkAsync(options);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-video.mdx b/dotnet/versioned_docs/version-stable/api/class-video.mdx
index a3d0ef4a679..3c1ec64b7a1 100644
--- a/dotnet/versioned_docs/version-stable/api/class-video.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-video.mdx
@@ -73,7 +73,6 @@ await Video.SaveAsAsync(path);
- [void]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-weberror.mdx b/dotnet/versioned_docs/version-stable/api/class-weberror.mdx
index bbe73bf2d2b..4680d8110c1 100644
--- a/dotnet/versioned_docs/version-stable/api/class-weberror.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-weberror.mdx
@@ -55,7 +55,6 @@ WebError.Page
- [Page]?#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-websocket.mdx b/dotnet/versioned_docs/version-stable/api/class-websocket.mdx
index 8ca4fb4a0c9..56ea9dfa3da 100644
--- a/dotnet/versioned_docs/version-stable/api/class-websocket.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-websocket.mdx
@@ -119,7 +119,6 @@ WebSocket.SocketError += async (_, value) => {};
- [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-websocketframe.mdx b/dotnet/versioned_docs/version-stable/api/class-websocketframe.mdx
index 24903141f97..1979cd2f21b 100644
--- a/dotnet/versioned_docs/version-stable/api/class-websocketframe.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-websocketframe.mdx
@@ -47,7 +47,6 @@ WebSocketFrame.Text
- [string]?#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-websocketroute.mdx b/dotnet/versioned_docs/version-stable/api/class-websocketroute.mdx
index 0c0d8b2449b..1f0018078a8 100644
--- a/dotnet/versioned_docs/version-stable/api/class-websocketroute.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-websocketroute.mdx
@@ -216,7 +216,6 @@ WebSocketRoute.Url
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/api/class-worker.mdx b/dotnet/versioned_docs/version-stable/api/class-worker.mdx
index 11239d8db59..1e7bfe2247d 100644
--- a/dotnet/versioned_docs/version-stable/api/class-worker.mdx
+++ b/dotnet/versioned_docs/version-stable/api/class-worker.mdx
@@ -118,8 +118,24 @@ Worker.Close += async (_, worker) => {};
**Event data**
- [Worker]
+---
+
+### event Console {#worker-event-console}
+
+Added in: v1.57worker.event Console
+
+Emitted when JavaScript within the worker calls one of console API methods, e.g. `console.log` or `console.dir`.
+
+**Usage**
+
+```csharp
+Worker.Console += async (_, consoleMessage) => {};
+```
+
+**Event data**
+- [ConsoleMessage]
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/aria-snapshots.mdx b/dotnet/versioned_docs/version-stable/aria-snapshots.mdx
index 60443a16e55..c87364b6f6b 100644
--- a/dotnet/versioned_docs/version-stable/aria-snapshots.mdx
+++ b/dotnet/versioned_docs/version-stable/aria-snapshots.mdx
@@ -379,7 +379,6 @@ Commonly used ARIA attributes, like `checked`, `disabled`, `expanded`, `level`,
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/auth.mdx b/dotnet/versioned_docs/version-stable/auth.mdx
index b852bb26e1c..86c3671f451 100644
--- a/dotnet/versioned_docs/version-stable/auth.mdx
+++ b/dotnet/versioned_docs/version-stable/auth.mdx
@@ -124,7 +124,6 @@ await context.AddInitScriptAsync(@"(storage => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/browser-contexts.mdx b/dotnet/versioned_docs/version-stable/browser-contexts.mdx
index 6ecd9a8c626..358d4e4784f 100644
--- a/dotnet/versioned_docs/version-stable/browser-contexts.mdx
+++ b/dotnet/versioned_docs/version-stable/browser-contexts.mdx
@@ -59,7 +59,6 @@ class Program
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/browsers.mdx b/dotnet/versioned_docs/version-stable/browsers.mdx
index 56090e76f05..f89323bbf74 100644
--- a/dotnet/versioned_docs/version-stable/browsers.mdx
+++ b/dotnet/versioned_docs/version-stable/browsers.mdx
@@ -534,7 +534,6 @@ pwsh bin/Debug/netX/playwright.ps1 uninstall --all
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/ci-intro.mdx b/dotnet/versioned_docs/version-stable/ci-intro.mdx
index c8a4abbe3e7..58d44445258 100644
--- a/dotnet/versioned_docs/version-stable/ci-intro.mdx
+++ b/dotnet/versioned_docs/version-stable/ci-intro.mdx
@@ -98,7 +98,6 @@ Artifacts like trace files or console logs contain information about your test e
- [Learn more about running tests on other CI providers](/ci.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/ci.mdx b/dotnet/versioned_docs/version-stable/ci.mdx
index bd7fb4c8306..d0df1c2cc2d 100644
--- a/dotnet/versioned_docs/version-stable/ci.mdx
+++ b/dotnet/versioned_docs/version-stable/ci.mdx
@@ -76,7 +76,7 @@ jobs:
name: 'Playwright Tests'
runs-on: ubuntu-latest
container:
- image: mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
+ image: mcr.microsoft.com/playwright/dotnet:v1.56.0-noble
options: --user 1001
steps:
- uses: actions/checkout@v5
@@ -159,7 +159,7 @@ trigger:
pool:
vmImage: ubuntu-latest
-container: mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
+container: mcr.microsoft.com/playwright/dotnet:v1.56.0-noble
steps:
- task: UseDotNet@2
@@ -182,7 +182,7 @@ Running Playwright on CircleCI is very similar to running on GitHub Actions. In
executors:
pw-noble-development:
docker:
- - image: mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
+ - image: mcr.microsoft.com/playwright/dotnet:v1.56.0-noble
```
Note: When using the docker agent definition, you are specifying the resource class of where playwright runs to the 'medium' tier [here](https://circleci.com/docs/configuration-reference?#docker-execution-environment). The default behavior of Playwright is to set the number of workers to the detected core count (2 in the case of the medium tier). Overriding the number of workers to greater than this number will cause unnecessary timeouts and failures.
@@ -193,7 +193,7 @@ Jenkins supports Docker agents for pipelines. Use the [Playwright Docker image](
```groovy
pipeline {
- agent { docker { image 'mcr.microsoft.com/playwright/dotnet:v1.55.0-noble' } }
+ agent { docker { image 'mcr.microsoft.com/playwright/dotnet:v1.56.0-noble' } }
stages {
stage('e2e-tests') {
steps {
@@ -210,7 +210,7 @@ pipeline {
Bitbucket Pipelines can use public [Docker images as build environments](https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html). To run Playwright tests on Bitbucket, use our public Docker image ([see Dockerfile](./docker.mdx)).
```yml
-image: mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
+image: mcr.microsoft.com/playwright/dotnet:v1.56.0-noble
```
### GitLab CI
@@ -242,7 +242,6 @@ xvfb-run dotnet test
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/clock.mdx b/dotnet/versioned_docs/version-stable/clock.mdx
index 07adfe38211..4bcfe5c2c94 100644
--- a/dotnet/versioned_docs/version-stable/clock.mdx
+++ b/dotnet/versioned_docs/version-stable/clock.mdx
@@ -186,7 +186,6 @@ await Expect(locator).ToHaveTextAsync("2/2/2024, 10:00:02 AM");
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/codegen-intro.mdx b/dotnet/versioned_docs/version-stable/codegen-intro.mdx
index 5ab0448b62d..0467d9d079b 100644
--- a/dotnet/versioned_docs/version-stable/codegen-intro.mdx
+++ b/dotnet/versioned_docs/version-stable/codegen-intro.mdx
@@ -63,7 +63,6 @@ You can generate tests using emulation for specific viewports, devices, color sc
- [See a trace of your tests](./trace-viewer-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/codegen.mdx b/dotnet/versioned_docs/version-stable/codegen.mdx
index 90f4855ac72..4f8caac25c9 100644
--- a/dotnet/versioned_docs/version-stable/codegen.mdx
+++ b/dotnet/versioned_docs/version-stable/codegen.mdx
@@ -169,7 +169,6 @@ await page.PauseAsync();
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/debug.mdx b/dotnet/versioned_docs/version-stable/debug.mdx
index 83c159b1002..4488ed6efe9 100644
--- a/dotnet/versioned_docs/version-stable/debug.mdx
+++ b/dotnet/versioned_docs/version-stable/debug.mdx
@@ -264,7 +264,6 @@ await using var browser = await playwright.Chromium.LaunchAsync(new()
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/dialogs.mdx b/dotnet/versioned_docs/version-stable/dialogs.mdx
index 4a330b54729..818271ec459 100644
--- a/dotnet/versioned_docs/version-stable/dialogs.mdx
+++ b/dotnet/versioned_docs/version-stable/dialogs.mdx
@@ -73,7 +73,6 @@ await Page.WaitForFunctionAsync("window.waitForPrintDialog");
This will wait for the print dialog to be opened after the button is clicked. Make sure to evaluate the script before clicking the button / after the page is loaded.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/docker.mdx b/dotnet/versioned_docs/version-stable/docker.mdx
index 23db20cf317..db075a24a36 100644
--- a/dotnet/versioned_docs/version-stable/docker.mdx
+++ b/dotnet/versioned_docs/version-stable/docker.mdx
@@ -22,7 +22,7 @@ This Docker image is intended to be used for testing and development purposes on
### Pull the image
```bash
-docker pull mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
+docker pull mcr.microsoft.com/playwright/dotnet:v1.56.0-noble
```
### Run the image
@@ -34,7 +34,7 @@ By default, the Docker image will use the `root` user to run the browsers. This
On trusted websites, you can avoid creating a separate user and use root for it since you trust the code which will run on the browsers.
```bash
-docker run -it --rm --ipc=host mcr.microsoft.com/playwright/dotnet:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host mcr.microsoft.com/playwright/dotnet:v1.56.0-noble /bin/bash
```
#### Crawling and scraping
@@ -42,7 +42,7 @@ docker run -it --rm --ipc=host mcr.microsoft.com/playwright/dotnet:v1.55.0-noble
On untrusted websites, it's recommended to use a separate user for launching the browsers in combination with the seccomp profile. Inside the container or if you are using the Docker image as a base image you have to use `adduser` for it.
```bash
-docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/dotnet:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/dotnet:v1.56.0-noble /bin/bash
```
[`seccomp_profile.json`](https://github.com/microsoft/playwright/blob/main/utils/docker/seccomp_profile.json) is needed to run Chromium with sandbox. This is a [default Docker seccomp profile](https://github.com/docker/engine/blob/d0d99b04cf6e00ed3fc27e81fc3d94e7eda70af3/profiles/seccomp/default.json) with extra user namespace cloning permissions:
@@ -82,7 +82,7 @@ You can run Playwright Server in Docker while keeping your tests running on the
Start the Playwright Server in Docker:
```bash
-docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
#### Connecting to the Server
@@ -99,7 +99,7 @@ await using var browser = await playwright.Chromium.ConnectAsync("ws://127.0.0.1
If you need to access local servers from within the Docker container:
```bash
-docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
This makes `hostmachine` point to the host's localhost. Your tests should use `hostmachine` instead of `localhost` when accessing local servers.
@@ -114,9 +114,9 @@ When running tests remotely, ensure the Playwright version in your tests matches
See [all available image tags].
We currently publish images with the following tags:
-- `:v1.55.0` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-noble` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-jammy` - Playwright v1.55.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
+- `:v1.56.0` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-noble` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-jammy` - Playwright v1.56.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
:::note
@@ -142,7 +142,6 @@ curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --install-dir /
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/downloads.mdx b/dotnet/versioned_docs/version-stable/downloads.mdx
index 4b2511f751a..0b8d5c64abf 100644
--- a/dotnet/versioned_docs/version-stable/downloads.mdx
+++ b/dotnet/versioned_docs/version-stable/downloads.mdx
@@ -45,7 +45,6 @@ For uploading files, see the [uploading files](./input.mdx#upload-files) section
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/emulation.mdx b/dotnet/versioned_docs/version-stable/emulation.mdx
index c5a4d0e4443..f302fa7711f 100644
--- a/dotnet/versioned_docs/version-stable/emulation.mdx
+++ b/dotnet/versioned_docs/version-stable/emulation.mdx
@@ -175,7 +175,6 @@ var context = await browser.NewContextAsync(new() { JavaScriptEnabled = false })
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/evaluating.mdx b/dotnet/versioned_docs/version-stable/evaluating.mdx
index 2b46f35f916..2cc1ee52eb3 100644
--- a/dotnet/versioned_docs/version-stable/evaluating.mdx
+++ b/dotnet/versioned_docs/version-stable/evaluating.mdx
@@ -107,7 +107,6 @@ await Page.AddInitScriptAsync(scriptPath: "mocks/preload.js");
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/events.mdx b/dotnet/versioned_docs/version-stable/events.mdx
index fcc18829fd4..e364ab14e4a 100644
--- a/dotnet/versioned_docs/version-stable/events.mdx
+++ b/dotnet/versioned_docs/version-stable/events.mdx
@@ -52,7 +52,6 @@ await page.GotoAsync("https://www.openstreetmap.org/");
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/extensibility.mdx b/dotnet/versioned_docs/version-stable/extensibility.mdx
index 1e4f3948000..dbbda723c12 100644
--- a/dotnet/versioned_docs/version-stable/extensibility.mdx
+++ b/dotnet/versioned_docs/version-stable/extensibility.mdx
@@ -47,7 +47,6 @@ await page.Locator("tag=div").GetByText("Click me").ClickAsync();
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/frames.mdx b/dotnet/versioned_docs/version-stable/frames.mdx
index 84797a050e9..09066ca6352 100644
--- a/dotnet/versioned_docs/version-stable/frames.mdx
+++ b/dotnet/versioned_docs/version-stable/frames.mdx
@@ -41,7 +41,6 @@ await frame.FillAsync("#username-input", "John");
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/handles.mdx b/dotnet/versioned_docs/version-stable/handles.mdx
index 6a8be5b34ce..4844245735a 100644
--- a/dotnet/versioned_docs/version-stable/handles.mdx
+++ b/dotnet/versioned_docs/version-stable/handles.mdx
@@ -115,7 +115,6 @@ await locator.ClickAsync();
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/input.mdx b/dotnet/versioned_docs/version-stable/input.mdx
index 61f5a13abcf..ceced254094 100644
--- a/dotnet/versioned_docs/version-stable/input.mdx
+++ b/dotnet/versioned_docs/version-stable/input.mdx
@@ -263,7 +263,6 @@ await page.GetByTestId("scrolling-container").EvaluateAsync("e => e.scrollTop +=
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/intro.mdx b/dotnet/versioned_docs/version-stable/intro.mdx
index e3fb73868ff..af07dd435a3 100644
--- a/dotnet/versioned_docs/version-stable/intro.mdx
+++ b/dotnet/versioned_docs/version-stable/intro.mdx
@@ -287,7 +287,6 @@ See our doc on [Running and Debugging Tests](./running-tests.mdx) to learn more
- [Learn more about the MSTest, NUnit, xUnit and xUnit v3 base classes](./test-runners.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/languages.mdx b/dotnet/versioned_docs/version-stable/languages.mdx
index 5221e84969c..7c784e33640 100644
--- a/dotnet/versioned_docs/version-stable/languages.mdx
+++ b/dotnet/versioned_docs/version-stable/languages.mdx
@@ -35,7 +35,6 @@ Playwright for .NET comes with MSTest, NUnit, xUnit, and xUnit v3 [base classes]
* [GitHub repo](https://github.com/microsoft/playwright-dotnet)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/library.mdx b/dotnet/versioned_docs/version-stable/library.mdx
index 1738d4ff5e1..3dbbb5cadbf 100644
--- a/dotnet/versioned_docs/version-stable/library.mdx
+++ b/dotnet/versioned_docs/version-stable/library.mdx
@@ -98,7 +98,6 @@ or:
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/locators.mdx b/dotnet/versioned_docs/version-stable/locators.mdx
index e961cb4d71a..80febbb2166 100644
--- a/dotnet/versioned_docs/version-stable/locators.mdx
+++ b/dotnet/versioned_docs/version-stable/locators.mdx
@@ -935,7 +935,6 @@ You can explicitly opt-out from strictness check by telling Playwright which ele
For less commonly used locators, look at the [other locators](./other-locators.mdx) guide.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/mock.mdx b/dotnet/versioned_docs/version-stable/mock.mdx
index e5eda9b5e8d..cc225a72518 100644
--- a/dotnet/versioned_docs/version-stable/mock.mdx
+++ b/dotnet/versioned_docs/version-stable/mock.mdx
@@ -186,7 +186,6 @@ await page.RouteWebSocketAsync("wss://example.com/ws", ws => {
For more details, see [WebSocketRoute].
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/navigations.mdx b/dotnet/versioned_docs/version-stable/navigations.mdx
index d60331e1370..fea7d04e828 100644
--- a/dotnet/versioned_docs/version-stable/navigations.mdx
+++ b/dotnet/versioned_docs/version-stable/navigations.mdx
@@ -77,7 +77,6 @@ Playwright splits the process of showing a new document in a page into **navigat
- page executes dynamically loaded scripts
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/network.mdx b/dotnet/versioned_docs/version-stable/network.mdx
index 512847ea620..d3e3b8ac4a0 100644
--- a/dotnet/versioned_docs/version-stable/network.mdx
+++ b/dotnet/versioned_docs/version-stable/network.mdx
@@ -220,12 +220,12 @@ page.WebSocket += (_, ws) =>
## Missing Network Events and Service Workers
Playwright's built-in [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route) allow your tests to natively route requests and perform mocking and interception.
-1. If you're using Playwright's native [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [ServiceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
-1. It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-1. If you're interested in not solely using Service Workers for testing and network mocking, but in routing and listening for requests made by Service Workers themselves, please see [this experimental feature](https://github.com/microsoft/playwright/issues/15684).
+
+If you're using Playwright's native [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [ServiceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
+
+It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [BrowserContext.RouteAsync()](/api/class-browsercontext.mdx#browser-context-route) and [Page.RouteAsync()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/other-locators.mdx b/dotnet/versioned_docs/version-stable/other-locators.mdx
index db5b844e308..45cd3d18a79 100644
--- a/dotnet/versioned_docs/version-stable/other-locators.mdx
+++ b/dotnet/versioned_docs/version-stable/other-locators.mdx
@@ -472,7 +472,6 @@ By default, chained selectors resolve to an element queried by the last selector
For example, `css=article >> text=Hello` captures the element with the text `Hello`, and `*css=article >> text=Hello` (note the `*`) captures the `article` element that contains some element with the text `Hello`.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/pages.mdx b/dotnet/versioned_docs/version-stable/pages.mdx
index beddf404289..004c363e368 100644
--- a/dotnet/versioned_docs/version-stable/pages.mdx
+++ b/dotnet/versioned_docs/version-stable/pages.mdx
@@ -93,7 +93,6 @@ page.Popup += async (_, popup) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/pom.mdx b/dotnet/versioned_docs/version-stable/pom.mdx
index da302a6704a..4af6ff0e5e9 100644
--- a/dotnet/versioned_docs/version-stable/pom.mdx
+++ b/dotnet/versioned_docs/version-stable/pom.mdx
@@ -60,7 +60,6 @@ await page.SearchAsync("search query");
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/release-notes.mdx b/dotnet/versioned_docs/version-stable/release-notes.mdx
index 8035fabe462..bc1d3749aa9 100644
--- a/dotnet/versioned_docs/version-stable/release-notes.mdx
+++ b/dotnet/versioned_docs/version-stable/release-notes.mdx
@@ -7,6 +7,23 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+## Version 1.56
+
+### New APIs
+- New methods [Page.ConsoleMessagesAsync()](/api/class-page.mdx#page-console-messages) and [Page.PageErrorsAsync()](/api/class-page.mdx#page-page-errors) for retrieving the most recent console messages from the page
+- New method [Page.RequestsAsync()](/api/class-page.mdx#page-requests) for retrieving the most recent network requests from the page
+
+### Breaking Changes
+- Event [BrowserContext.BackgroundPage](/api/class-browsercontext.mdx#browser-context-event-background-page) has been deprecated and will not be emitted. Method [BrowserContext.BackgroundPages](/api/class-browsercontext.mdx#browser-context-background-pages) will return an empty list
+
+### Miscellaneous
+- Aria snapshots render and compare `input` `placeholder`
+
+### Browser Versions
+- Chromium 141.0.7390.37
+- Mozilla Firefox 142.0.1
+- WebKit 26.0
+
## Version 1.55
### Codegen
@@ -1542,7 +1559,6 @@ This version of Playwright was also tested against the following stable channels
- Microsoft Edge 91
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/running-tests.mdx b/dotnet/versioned_docs/version-stable/running-tests.mdx
index 4616c3891cd..a396d776f04 100644
--- a/dotnet/versioned_docs/version-stable/running-tests.mdx
+++ b/dotnet/versioned_docs/version-stable/running-tests.mdx
@@ -248,7 +248,6 @@ Check out our [debugging guide](./debug.mdx) to learn more about the [Playwright
- [Learn more about the MSTest, NUnit, xUnit and xUnit v3 base classes](./test-runners.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/screenshots.mdx b/dotnet/versioned_docs/version-stable/screenshots.mdx
index c72ce7fdfec..fce4ba74c04 100644
--- a/dotnet/versioned_docs/version-stable/screenshots.mdx
+++ b/dotnet/versioned_docs/version-stable/screenshots.mdx
@@ -49,7 +49,6 @@ await page.Locator(".header").ScreenshotAsync(new() { Path = "screenshot.png" })
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/selenium-grid.mdx b/dotnet/versioned_docs/version-stable/selenium-grid.mdx
index 36dd5988d41..994f98217a4 100644
--- a/dotnet/versioned_docs/version-stable/selenium-grid.mdx
+++ b/dotnet/versioned_docs/version-stable/selenium-grid.mdx
@@ -124,7 +124,6 @@ Internally, Playwright connects to the browser using [Chrome DevTools Protocol](
This means that Selenium 3 is supported in a best-effort manner, where Playwright tries to connect to the grid node directly. Grid nodes must be directly accessible from the machine that runs Playwright.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/test-assertions.mdx b/dotnet/versioned_docs/version-stable/test-assertions.mdx
index 8ae268c608a..7b84ee2c5f5 100644
--- a/dotnet/versioned_docs/version-stable/test-assertions.mdx
+++ b/dotnet/versioned_docs/version-stable/test-assertions.mdx
@@ -143,7 +143,6 @@ await Expect(Page.GetByText("Name")).ToBeVisibleAsync(new() { Timeout = 10_000 }
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/test-runners.mdx b/dotnet/versioned_docs/version-stable/test-runners.mdx
index bc81bdabd28..857830f8526 100644
--- a/dotnet/versioned_docs/version-stable/test-runners.mdx
+++ b/dotnet/versioned_docs/version-stable/test-runners.mdx
@@ -456,7 +456,6 @@ There are a few base classes available to you in `Microsoft.Playwright.Xunit.v3`
|PlaywrightTest|This gives each test a Playwright object so that the test could start and stop as many browsers as it likes.|
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/touch-events.mdx b/dotnet/versioned_docs/version-stable/touch-events.mdx
index 247e46af8f8..20ff2a00e29 100644
--- a/dotnet/versioned_docs/version-stable/touch-events.mdx
+++ b/dotnet/versioned_docs/version-stable/touch-events.mdx
@@ -158,7 +158,6 @@ public class TouchEvents
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/trace-viewer-intro.mdx b/dotnet/versioned_docs/version-stable/trace-viewer-intro.mdx
index 94b78a860d7..ab33e53f7b8 100644
--- a/dotnet/versioned_docs/version-stable/trace-viewer-intro.mdx
+++ b/dotnet/versioned_docs/version-stable/trace-viewer-intro.mdx
@@ -262,7 +262,6 @@ Check out our detailed guide on [Trace Viewer](/trace-viewer.mdx) to learn more
- [Learn more about the MSTest, NUnit, xUnit, and xUnit v3 base classes](./test-runners.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/trace-viewer.mdx b/dotnet/versioned_docs/version-stable/trace-viewer.mdx
index 2f0165d2a0a..71c159fbb91 100644
--- a/dotnet/versioned_docs/version-stable/trace-viewer.mdx
+++ b/dotnet/versioned_docs/version-stable/trace-viewer.mdx
@@ -22,7 +22,7 @@ pwsh bin/Debug/netX/playwright.ps1 show-trace trace.zip
### Using [trace.playwright.dev](https://trace.playwright.dev)
-[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload trace files using drag and drop or via the `Select file(s)` button.
+[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload a trace file using drag and drop or via the `Select file` button.
Trace Viewer loads the trace entirely in your browser and does not transmit any data externally.
@@ -39,7 +39,7 @@ pwsh bin/Debug/netX/playwright.ps1 show-trace https://example.com/trace.zip
When using [trace.playwright.dev](https://trace.playwright.dev), you can also pass the URL of your uploaded trace at some accessible storage (e.g. inside your CI) as a query parameter. CORS (Cross-Origin Resource Sharing) rules might apply.
```txt
-https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/fa874b0d59cdedec675521c21124e93161d66533.zip
+https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/e6099cadf79aa753d5500aa9508f9d1dbd87b5ee.zip
```
## Recording a trace
@@ -599,7 +599,6 @@ Next to the Actions tab you will find the Metadata tab which will show you more

-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/videos.mdx b/dotnet/versioned_docs/version-stable/videos.mdx
index 4c1e43e1390..ff032a54401 100644
--- a/dotnet/versioned_docs/version-stable/videos.mdx
+++ b/dotnet/versioned_docs/version-stable/videos.mdx
@@ -46,7 +46,6 @@ Note that the video is only available after the page or browser context is close
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/webview2.mdx b/dotnet/versioned_docs/version-stable/webview2.mdx
index e2a47effd31..0b720f2ea31 100644
--- a/dotnet/versioned_docs/version-stable/webview2.mdx
+++ b/dotnet/versioned_docs/version-stable/webview2.mdx
@@ -141,7 +141,6 @@ Inside your webview2 control, you can just right-click to open the context menu
For debugging tests, see the Playwright [Debugging guide](./debug).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_docs/version-stable/writing-tests.mdx b/dotnet/versioned_docs/version-stable/writing-tests.mdx
index d7cb0b27af1..fc262c32a06 100644
--- a/dotnet/versioned_docs/version-stable/writing-tests.mdx
+++ b/dotnet/versioned_docs/version-stable/writing-tests.mdx
@@ -493,7 +493,6 @@ public class UnitTest1: PageTest
- [Learn more about the MSTest, NUnit, xUnit, or xUnit v3 base classes](./test-runners.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/dotnet/versioned_sidebars/version-stable-sidebars.json b/dotnet/versioned_sidebars/version-stable-sidebars.json
index a7124856a3b..990feb3f80b 100644
--- a/dotnet/versioned_sidebars/version-stable-sidebars.json
+++ b/dotnet/versioned_sidebars/version-stable-sidebars.json
@@ -223,10 +223,6 @@
"type": "doc",
"id": "api/class-apiresponse"
},
- {
- "type": "doc",
- "id": "api/class-accessibility"
- },
{
"type": "doc",
"id": "api/class-browser"
diff --git a/java/versioned_docs/images/cft-logo-change.png b/java/versioned_docs/images/cft-logo-change.png
new file mode 100644
index 00000000000..89c5695e29f
Binary files /dev/null and b/java/versioned_docs/images/cft-logo-change.png differ
diff --git a/java/versioned_docs/images/speedboard.png b/java/versioned_docs/images/speedboard.png
new file mode 100644
index 00000000000..e6fa26ab611
Binary files /dev/null and b/java/versioned_docs/images/speedboard.png differ
diff --git a/java/versioned_docs/version-stable/api/class-browsercontext.mdx b/java/versioned_docs/version-stable/api/class-browsercontext.mdx
index 4eb2fd4486b..c99a4695f9a 100644
--- a/java/versioned_docs/version-stable/api/class-browsercontext.mdx
+++ b/java/versioned_docs/version-stable/api/class-browsercontext.mdx
@@ -50,13 +50,13 @@ browserContext.addCookies(Arrays.asList(cookieObject1, cookieObject2));
- `setUrl` [String] *(optional)*
- Either url or domain / path are required. Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `setDomain` [String] *(optional)*
- For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either url or domain / path are required. Optional.
+ For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either `url` or both `domain` and `path` are required. Optional.
- `setPath` [String] *(optional)*
- Either url or domain / path are required Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `setExpires` [double] *(optional)*
Unix time in seconds. Optional.
diff --git a/java/versioned_docs/version-stable/api/class-consolemessage.mdx b/java/versioned_docs/version-stable/api/class-consolemessage.mdx
index a545927a9ef..b614793046a 100644
--- a/java/versioned_docs/version-stable/api/class-consolemessage.mdx
+++ b/java/versioned_docs/version-stable/api/class-consolemessage.mdx
@@ -118,6 +118,23 @@ ConsoleMessage.type();
**Returns**
- [String]#
+---
+
+### worker {#console-message-worker}
+
+Added in: v1.57consoleMessage.worker
+
+The web worker or service worker that produced this console message, if any. Note that console messages from web workers also have non-null [ConsoleMessage.page()](/api/class-consolemessage.mdx#console-message-page).
+
+**Usage**
+
+```java
+ConsoleMessage.worker();
+```
+
+**Returns**
+- [null] | [Worker]#
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/java/versioned_docs/version-stable/api/class-download.mdx b/java/versioned_docs/version-stable/api/class-download.mdx
index 073088ca1bf..ac368767b3f 100644
--- a/java/versioned_docs/version-stable/api/class-download.mdx
+++ b/java/versioned_docs/version-stable/api/class-download.mdx
@@ -52,6 +52,11 @@ Download.cancel();
Returns a readable stream for a successful download, or throws for a failed/canceled download.
+:::note
+
+If you don't need a readable stream, it's usually simpler to read the file from disk after the download completed. See [Download.path()](/api/class-download.mdx#download-path).
+:::
+
**Usage**
```java
diff --git a/java/versioned_docs/version-stable/api/class-elementhandle.mdx b/java/versioned_docs/version-stable/api/class-elementhandle.mdx
index 257924f1ce6..b0419f24801 100644
--- a/java/versioned_docs/version-stable/api/class-elementhandle.mdx
+++ b/java/versioned_docs/version-stable/api/class-elementhandle.mdx
@@ -279,6 +279,9 @@ ElementHandle.click(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `setTimeout` [double] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -353,6 +356,9 @@ ElementHandle.dblclick(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `setTimeout` [double] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
diff --git a/java/versioned_docs/version-stable/api/class-frame.mdx b/java/versioned_docs/version-stable/api/class-frame.mdx
index c33a3ae8564..21df4c2b509 100644
--- a/java/versioned_docs/version-stable/api/class-frame.mdx
+++ b/java/versioned_docs/version-stable/api/class-frame.mdx
@@ -181,6 +181,9 @@ Frame.dragAndDrop(source, target, options);
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `setStrict` [boolean] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
diff --git a/java/versioned_docs/version-stable/api/class-locator.mdx b/java/versioned_docs/version-stable/api/class-locator.mdx
index 2aca2d1d148..580a413b7e0 100644
--- a/java/versioned_docs/version-stable/api/class-locator.mdx
+++ b/java/versioned_docs/version-stable/api/class-locator.mdx
@@ -382,6 +382,9 @@ page.locator("canvas").click(new Locator.ClickOptions()
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `setTimeout` [double] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -495,6 +498,9 @@ Locator.dblclick(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `setTimeout` [double] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [BrowserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [Page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -546,6 +552,27 @@ button.click();
---
+### description {#locator-description}
+
+Added in: v1.57locator.description
+
+Returns locator description previously set with [Locator.describe()](/api/class-locator.mdx#locator-describe). Returns `null` if no custom description has been set. Prefer `Locator.toString()` for a human-readable representation, as it uses the description when available.
+
+**Usage**
+
+```java
+Locator button = page.getByRole(AriaRole.BUTTON).describe("Subscribe button");
+System.out.println(button.description()); // "Subscribe button"
+
+Locator input = page.getByRole(AriaRole.TEXTBOX);
+System.out.println(input.description()); // null
+```
+
+**Returns**
+- [null] | [String]#
+
+---
+
### dispatchEvent {#locator-dispatch-event}
Added in: v1.14locator.dispatchEvent
@@ -644,6 +671,9 @@ source.dragTo(target, new Locator.DragToOptions()
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `setTargetPosition` TargetPosition *(optional)*#
- `setX` [double]
diff --git a/java/versioned_docs/version-stable/api/class-mouse.mdx b/java/versioned_docs/version-stable/api/class-mouse.mdx
index 2ce1015698f..94a381e5dc9 100644
--- a/java/versioned_docs/version-stable/api/class-mouse.mdx
+++ b/java/versioned_docs/version-stable/api/class-mouse.mdx
@@ -151,7 +151,7 @@ Mouse.move(x, y, options);
- `options` `Mouse.MoveOptions` *(optional)*
- `setSteps` [int] *(optional)*#
- Defaults to 1. Sends intermediate `mousemove` events.
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
**Returns**
- [void]#
diff --git a/java/versioned_docs/version-stable/api/class-page.mdx b/java/versioned_docs/version-stable/api/class-page.mdx
index bc730ea383c..926fd8ed5d0 100644
--- a/java/versioned_docs/version-stable/api/class-page.mdx
+++ b/java/versioned_docs/version-stable/api/class-page.mdx
@@ -391,6 +391,9 @@ page.dragAndDrop("#source", "#target", new Page.DragAndDropOptions()
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `setSteps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `setStrict` [boolean] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
diff --git a/java/versioned_docs/version-stable/api/class-worker.mdx b/java/versioned_docs/version-stable/api/class-worker.mdx
index f387780e844..db74ebe8fb8 100644
--- a/java/versioned_docs/version-stable/api/class-worker.mdx
+++ b/java/versioned_docs/version-stable/api/class-worker.mdx
@@ -143,6 +143,23 @@ Worker.onClose(handler)
**Event data**
- [Worker]
+---
+
+### onConsole(handler) {#worker-event-console}
+
+Added in: v1.57worker.onConsole(handler)
+
+Emitted when JavaScript within the worker calls one of console API methods, e.g. `console.log` or `console.dir`.
+
+**Usage**
+
+```java
+Worker.onConsole(handler)
+```
+
+**Event data**
+- [ConsoleMessage]
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/java/versioned_docs/version-stable/ci.mdx b/java/versioned_docs/version-stable/ci.mdx
index 5b5e4f63e4e..4c29ffc3ff1 100644
--- a/java/versioned_docs/version-stable/ci.mdx
+++ b/java/versioned_docs/version-stable/ci.mdx
@@ -75,7 +75,7 @@ jobs:
name: 'Playwright Tests'
runs-on: ubuntu-latest
container:
- image: mcr.microsoft.com/playwright/java:v1.55.0-noble
+ image: mcr.microsoft.com/playwright/java:v1.56.0-noble
options: --user 1001
steps:
- uses: actions/checkout@v5
@@ -160,7 +160,7 @@ trigger:
pool:
vmImage: ubuntu-latest
-container: mcr.microsoft.com/playwright/java:v1.55.0-noble
+container: mcr.microsoft.com/playwright/java:v1.56.0-noble
steps:
- task: JavaToolInstaller@1
@@ -183,7 +183,7 @@ Running Playwright on CircleCI is very similar to running on GitHub Actions. In
executors:
pw-noble-development:
docker:
- - image: mcr.microsoft.com/playwright/java:v1.55.0-noble
+ - image: mcr.microsoft.com/playwright/java:v1.56.0-noble
```
Note: When using the docker agent definition, you are specifying the resource class of where playwright runs to the 'medium' tier [here](https://circleci.com/docs/configuration-reference?#docker-execution-environment). The default behavior of Playwright is to set the number of workers to the detected core count (2 in the case of the medium tier). Overriding the number of workers to greater than this number will cause unnecessary timeouts and failures.
@@ -194,7 +194,7 @@ Jenkins supports Docker agents for pipelines. Use the [Playwright Docker image](
```groovy
pipeline {
- agent { docker { image 'mcr.microsoft.com/playwright/java:v1.55.0-noble' } }
+ agent { docker { image 'mcr.microsoft.com/playwright/java:v1.56.0-noble' } }
stages {
stage('e2e-tests') {
steps {
@@ -211,7 +211,7 @@ pipeline {
Bitbucket Pipelines can use public [Docker images as build environments](https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html). To run Playwright tests on Bitbucket, use our public Docker image ([see Dockerfile](./docker.mdx)).
```yml
-image: mcr.microsoft.com/playwright/java:v1.55.0-noble
+image: mcr.microsoft.com/playwright/java:v1.56.0-noble
```
### GitLab CI
@@ -224,7 +224,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright/java:v1.55.0-noble
+ image: mcr.microsoft.com/playwright/java:v1.56.0-noble
script:
...
```
diff --git a/java/versioned_docs/version-stable/docker.mdx b/java/versioned_docs/version-stable/docker.mdx
index 4c6f9882394..9b2b037da17 100644
--- a/java/versioned_docs/version-stable/docker.mdx
+++ b/java/versioned_docs/version-stable/docker.mdx
@@ -22,7 +22,7 @@ This Docker image is intended to be used for testing and development purposes on
### Pull the image
```bash
-docker pull mcr.microsoft.com/playwright/java:v1.55.0-noble
+docker pull mcr.microsoft.com/playwright/java:v1.56.0-noble
```
### Run the image
@@ -34,7 +34,7 @@ By default, the Docker image will use the `root` user to run the browsers. This
On trusted websites, you can avoid creating a separate user and use root for it since you trust the code which will run on the browsers.
```bash
-docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:v1.56.0-noble /bin/bash
```
#### Crawling and scraping
@@ -42,7 +42,7 @@ docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:v1.55.0-noble /
On untrusted websites, it's recommended to use a separate user for launching the browsers in combination with the seccomp profile. Inside the container or if you are using the Docker image as a base image you have to use `adduser` for it.
```bash
-docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/java:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/java:v1.56.0-noble /bin/bash
```
[`seccomp_profile.json`](https://github.com/microsoft/playwright/blob/main/utils/docker/seccomp_profile.json) is needed to run Chromium with sandbox. This is a [default Docker seccomp profile](https://github.com/docker/engine/blob/d0d99b04cf6e00ed3fc27e81fc3d94e7eda70af3/profiles/seccomp/default.json) with extra user namespace cloning permissions:
@@ -82,7 +82,7 @@ You can run Playwright Server in Docker while keeping your tests running on the
Start the Playwright Server in Docker:
```bash
-docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
#### Connecting to the Server
@@ -107,7 +107,7 @@ public class App {
If you need to access local servers from within the Docker container:
```bash
-docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
This makes `hostmachine` point to the host's localhost. Your tests should use `hostmachine` instead of `localhost` when accessing local servers.
@@ -122,9 +122,9 @@ When running tests remotely, ensure the Playwright version in your tests matches
See [all available image tags].
We currently publish images with the following tags:
-- `:v1.55.0` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-noble` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-jammy` - Playwright v1.55.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
+- `:v1.56.0` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-noble` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-jammy` - Playwright v1.56.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
:::note
diff --git a/java/versioned_docs/version-stable/intro.mdx b/java/versioned_docs/version-stable/intro.mdx
index 34fc124f7a3..f2dfcae2e9f 100644
--- a/java/versioned_docs/version-stable/intro.mdx
+++ b/java/versioned_docs/version-stable/intro.mdx
@@ -58,7 +58,7 @@ public class App {
com.microsoft.playwright
playwright
- 1.55.0
+ 1.56.0
diff --git a/java/versioned_docs/version-stable/network.mdx b/java/versioned_docs/version-stable/network.mdx
index 97c34f97b68..c98c58d4c30 100644
--- a/java/versioned_docs/version-stable/network.mdx
+++ b/java/versioned_docs/version-stable/network.mdx
@@ -214,9 +214,10 @@ page.onWebSocket(ws -> {
## Missing Network Events and Service Workers
Playwright's built-in [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route) allow your tests to natively route requests and perform mocking and interception.
-1. If you're using Playwright's native [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [setServiceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
-1. It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-1. If you're interested in not solely using Service Workers for testing and network mocking, but in routing and listening for requests made by Service Workers themselves, please see [this experimental feature](https://github.com/microsoft/playwright/issues/15684).
+
+If you're using Playwright's native [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [setServiceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
+
+It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [BrowserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [Page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
diff --git a/java/versioned_docs/version-stable/release-notes.mdx b/java/versioned_docs/version-stable/release-notes.mdx
index 903230912f0..e0cb4b53dd6 100644
--- a/java/versioned_docs/version-stable/release-notes.mdx
+++ b/java/versioned_docs/version-stable/release-notes.mdx
@@ -7,6 +7,23 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+## Version 1.56
+
+### New APIs
+- New methods [Page.consoleMessages()](/api/class-page.mdx#page-console-messages) and [Page.pageErrors()](/api/class-page.mdx#page-page-errors) for retrieving the most recent console messages from the page
+- New method [Page.requests()](/api/class-page.mdx#page-requests) for retrieving the most recent network requests from the page
+
+### Breaking Changes
+- Event [BrowserContext.onBackgroundPage(handler)](/api/class-browsercontext.mdx#browser-context-event-background-page) has been deprecated and will not be emitted. Method [BrowserContext.backgroundPages()](/api/class-browsercontext.mdx#browser-context-background-pages) will return an empty list
+
+### Miscellaneous
+- Aria snapshots render and compare `input` `placeholder`
+
+### Browser Versions
+- Chromium 141.0.7390.37
+- Mozilla Firefox 142.0.1
+- WebKit 26.0
+
## Version 1.55
### Codegen
diff --git a/java/versioned_docs/version-stable/test-runners.mdx b/java/versioned_docs/version-stable/test-runners.mdx
index d3cb4020276..b170f8debb1 100644
--- a/java/versioned_docs/version-stable/test-runners.mdx
+++ b/java/versioned_docs/version-stable/test-runners.mdx
@@ -198,7 +198,7 @@ repositories {
}
dependencies {
- implementation 'com.microsoft.playwright:playwright:1.55.0'
+ implementation 'com.microsoft.playwright:playwright:1.56.0'
}
application {
@@ -231,7 +231,7 @@ repositories {
}
dependencies {
- implementation("com.microsoft.playwright:playwright:1.55.0")
+ implementation("com.microsoft.playwright:playwright:1.56.0")
}
application {
diff --git a/java/versioned_docs/version-stable/trace-viewer.mdx b/java/versioned_docs/version-stable/trace-viewer.mdx
index b446e1d01a6..bcb0b0fb7eb 100644
--- a/java/versioned_docs/version-stable/trace-viewer.mdx
+++ b/java/versioned_docs/version-stable/trace-viewer.mdx
@@ -22,7 +22,7 @@ mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="sh
### Using [trace.playwright.dev](https://trace.playwright.dev)
-[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload trace files using drag and drop or via the `Select file(s)` button.
+[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload a trace file using drag and drop or via the `Select file` button.
Trace Viewer loads the trace entirely in your browser and does not transmit any data externally.
@@ -39,7 +39,7 @@ mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="sh
When using [trace.playwright.dev](https://trace.playwright.dev), you can also pass the URL of your uploaded trace at some accessible storage (e.g. inside your CI) as a query parameter. CORS (Cross-Origin Resource Sharing) rules might apply.
```txt
-https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/fa874b0d59cdedec675521c21124e93161d66533.zip
+https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/e6099cadf79aa753d5500aa9508f9d1dbd87b5ee.zip
```
## Recording a trace
diff --git a/nodejs/versioned_docs/images/cft-logo-change.png b/nodejs/versioned_docs/images/cft-logo-change.png
new file mode 100644
index 00000000000..89c5695e29f
Binary files /dev/null and b/nodejs/versioned_docs/images/cft-logo-change.png differ
diff --git a/nodejs/versioned_docs/images/speedboard.png b/nodejs/versioned_docs/images/speedboard.png
new file mode 100644
index 00000000000..e6fa26ab611
Binary files /dev/null and b/nodejs/versioned_docs/images/speedboard.png differ
diff --git a/nodejs/versioned_docs/version-stable/accessibility-testing.mdx b/nodejs/versioned_docs/version-stable/accessibility-testing.mdx
index 1001896d000..9b8f0b6fb05 100644
--- a/nodejs/versioned_docs/version-stable/accessibility-testing.mdx
+++ b/nodejs/versioned_docs/version-stable/accessibility-testing.mdx
@@ -333,7 +333,6 @@ test('example using custom fixture', async ({ page, makeAxeBuilder }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/actionability.mdx b/nodejs/versioned_docs/version-stable/actionability.mdx
index c1a305d5eb9..e72c40edaac 100644
--- a/nodejs/versioned_docs/version-stable/actionability.mdx
+++ b/nodejs/versioned_docs/version-stable/actionability.mdx
@@ -123,7 +123,6 @@ For example, consider a scenario where Playwright will click `Sign Up` button re
[Receives Events]: #receives-events "Receives Events"
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api-testing.mdx b/nodejs/versioned_docs/version-stable/api-testing.mdx
index 45f4e7a5af0..5072e812205 100644
--- a/nodejs/versioned_docs/version-stable/api-testing.mdx
+++ b/nodejs/versioned_docs/version-stable/api-testing.mdx
@@ -374,7 +374,6 @@ test('global context request has isolated cookie storage', async ({
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-accessibility.mdx b/nodejs/versioned_docs/version-stable/api/class-accessibility.mdx
deleted file mode 100644
index 14ce9846c70..00000000000
--- a/nodejs/versioned_docs/version-stable/api/class-accessibility.mdx
+++ /dev/null
@@ -1,269 +0,0 @@
----
-id: class-accessibility
-title: "Accessibility"
----
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import HTMLCard from '@site/src/components/HTMLCard';
-
-
-:::warning[Deprecated]
-This class is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-:::
-
-
-The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access).
-
-Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.
-
-Rendering engines of Chromium, Firefox and WebKit have a concept of "accessibility tree", which is then translated into different platform-specific APIs. Accessibility namespace gives access to this Accessibility Tree.
-
-Most of the accessibility tree gets filtered out when converting from internal browser AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
-
-
----
-
-## Deprecated
-
-### snapshot {#accessibility-snapshot}
-
-Added before v1.9accessibility.snapshot
-
-:::warning Deprecated
-
-This method is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.
-
-:::note
-
-The Chromium accessibility tree contains nodes that go unused on most platforms and by most screen readers. Playwright will discard them as well for an easier to process tree, unless [interestingOnly](/api/class-accessibility.mdx#accessibility-snapshot-option-interesting-only) is set to `false`.
-:::
-
-**Usage**
-
-An example of dumping the entire accessibility tree:
-
-```js
-const snapshot = await page.accessibility.snapshot();
-console.log(snapshot);
-```
-
-An example of logging the focused node's name:
-
-```js
-const snapshot = await page.accessibility.snapshot();
-const node = findFocusedNode(snapshot);
-console.log(node && node.name);
-
-function findFocusedNode(node) {
- if (node.focused)
- return node;
- for (const child of node.children || []) {
- const foundNode = findFocusedNode(child);
- if (foundNode)
- return foundNode;
- }
- return null;
-}
-```
-
-**Arguments**
-- `options` [Object] *(optional)*
- - `interestingOnly` [boolean] *(optional)*#
-
- Prune uninteresting nodes from the tree. Defaults to `true`.
- - `root` [ElementHandle] *(optional)*#
-
- The root DOM element for the snapshot. Defaults to the whole page.
-
-**Returns**
-- [Promise]<[null] | [Object]>#
- - `role` [string]
-
- The [role](https://www.w3.org/TR/wai-aria/#usage).
- - `name` [string]
-
- A human readable name for the node.
- - `value` [string] | [number]
-
- The current value of the node, if applicable.
- - `description` [string]
-
- An additional human readable description of the node, if applicable.
- - `keyshortcuts` [string]
-
- Keyboard shortcuts associated with this node, if applicable.
- - `roledescription` [string]
-
- A human readable alternative to the role, if applicable.
- - `valuetext` [string]
-
- A description of the current value, if applicable.
- - `disabled` [boolean]
-
- Whether the node is disabled, if applicable.
- - `expanded` [boolean]
-
- Whether the node is expanded or collapsed, if applicable.
- - `focused` [boolean]
-
- Whether the node is focused, if applicable.
- - `modal` [boolean]
-
- Whether the node is [modal](https://en.wikipedia.org/wiki/Modal_window), if applicable.
- - `multiline` [boolean]
-
- Whether the node text input supports multiline, if applicable.
- - `multiselectable` [boolean]
-
- Whether more than one child can be selected, if applicable.
- - `readonly` [boolean]
-
- Whether the node is read only, if applicable.
- - `required` [boolean]
-
- Whether the node is required, if applicable.
- - `selected` [boolean]
-
- Whether the node is selected in its parent node, if applicable.
- - `checked` [boolean] | "mixed"
-
- Whether the checkbox is checked, or "mixed", if applicable.
- - `pressed` [boolean] | "mixed"
-
- Whether the toggle button is checked, or "mixed", if applicable.
- - `level` [number]
-
- The level of a heading, if applicable.
- - `valuemin` [number]
-
- The minimum value in a node, if applicable.
- - `valuemax` [number]
-
- The maximum value in a node, if applicable.
- - `autocomplete` [string]
-
- What kind of autocomplete is supported by a control, if applicable.
- - `haspopup` [string]
-
- What kind of popup is currently being shown for a node, if applicable.
- - `invalid` [string]
-
- Whether and in what way this node's value is invalid, if applicable.
- - `orientation` [string]
-
- Whether the node is oriented horizontally or vertically, if applicable.
- - `children` [Array]<[Object]>
-
- Child nodes, if any, if applicable.
-
-
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
-[Android]: /api/class-android.mdx "Android"
-[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
-[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
-[AndroidSocket]: /api/class-androidsocket.mdx "AndroidSocket"
-[AndroidWebView]: /api/class-androidwebview.mdx "AndroidWebView"
-[APIRequest]: /api/class-apirequest.mdx "APIRequest"
-[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
-[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
-[APIResponseAssertions]: /api/class-apiresponseassertions.mdx "APIResponseAssertions"
-[Browser]: /api/class-browser.mdx "Browser"
-[BrowserContext]: /api/class-browsercontext.mdx "BrowserContext"
-[BrowserServer]: /api/class-browserserver.mdx "BrowserServer"
-[BrowserType]: /api/class-browsertype.mdx "BrowserType"
-[CDPSession]: /api/class-cdpsession.mdx "CDPSession"
-[Clock]: /api/class-clock.mdx "Clock"
-[ConsoleMessage]: /api/class-consolemessage.mdx "ConsoleMessage"
-[Coverage]: /api/class-coverage.mdx "Coverage"
-[Dialog]: /api/class-dialog.mdx "Dialog"
-[Download]: /api/class-download.mdx "Download"
-[Electron]: /api/class-electron.mdx "Electron"
-[ElectronApplication]: /api/class-electronapplication.mdx "ElectronApplication"
-[ElementHandle]: /api/class-elementhandle.mdx "ElementHandle"
-[FileChooser]: /api/class-filechooser.mdx "FileChooser"
-[Frame]: /api/class-frame.mdx "Frame"
-[FrameLocator]: /api/class-framelocator.mdx "FrameLocator"
-[GenericAssertions]: /api/class-genericassertions.mdx "GenericAssertions"
-[JSHandle]: /api/class-jshandle.mdx "JSHandle"
-[Keyboard]: /api/class-keyboard.mdx "Keyboard"
-[Locator]: /api/class-locator.mdx "Locator"
-[LocatorAssertions]: /api/class-locatorassertions.mdx "LocatorAssertions"
-[Logger]: /api/class-logger.mdx "Logger"
-[Mouse]: /api/class-mouse.mdx "Mouse"
-[Page]: /api/class-page.mdx "Page"
-[PageAssertions]: /api/class-pageassertions.mdx "PageAssertions"
-[Playwright]: /api/class-playwright.mdx "Playwright"
-[PlaywrightAssertions]: /api/class-playwrightassertions.mdx "PlaywrightAssertions"
-[Request]: /api/class-request.mdx "Request"
-[Response]: /api/class-response.mdx "Response"
-[Route]: /api/class-route.mdx "Route"
-[Selectors]: /api/class-selectors.mdx "Selectors"
-[SnapshotAssertions]: /api/class-snapshotassertions.mdx "SnapshotAssertions"
-[TimeoutError]: /api/class-timeouterror.mdx "TimeoutError"
-[Touchscreen]: /api/class-touchscreen.mdx "Touchscreen"
-[Tracing]: /api/class-tracing.mdx "Tracing"
-[Video]: /api/class-video.mdx "Video"
-[WebError]: /api/class-weberror.mdx "WebError"
-[WebSocket]: /api/class-websocket.mdx "WebSocket"
-[WebSocketRoute]: /api/class-websocketroute.mdx "WebSocketRoute"
-[Worker]: /api/class-worker.mdx "Worker"
-[Fixtures]: /api/class-fixtures.mdx "Fixtures"
-[FullConfig]: /api/class-fullconfig.mdx "FullConfig"
-[FullProject]: /api/class-fullproject.mdx "FullProject"
-[Location]: /api/class-location.mdx "Location"
-[Test]: /api/class-test.mdx "Test"
-[TestConfig]: /api/class-testconfig.mdx "TestConfig"
-[TestInfo]: /api/class-testinfo.mdx "TestInfo"
-[TestInfoError]: /api/class-testinfoerror.mdx "TestInfoError"
-[TestOptions]: /api/class-testoptions.mdx "TestOptions"
-[TestProject]: /api/class-testproject.mdx "TestProject"
-[TestStepInfo]: /api/class-teststepinfo.mdx "TestStepInfo"
-[WorkerInfo]: /api/class-workerinfo.mdx "WorkerInfo"
-[Reporter]: /api/class-reporter.mdx "Reporter"
-[Suite]: /api/class-suite.mdx "Suite"
-[TestCase]: /api/class-testcase.mdx "TestCase"
-[TestError]: /api/class-testerror.mdx "TestError"
-[TestResult]: /api/class-testresult.mdx "TestResult"
-[TestStep]: /api/class-teststep.mdx "TestStep"
-[Element]: https://developer.mozilla.org/en-US/docs/Web/API/element "Element"
-[EvaluationArgument]: /evaluating.mdx#evaluation-argument "EvaluationArgument"
-[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"
-[iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols "Iterator"
-[origin]: https://developer.mozilla.org/en-US/docs/Glossary/Origin "Origin"
-[selector]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors "selector"
-[Serializable]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable"
-[UIEvent.detail]: https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail "UIEvent.detail"
-[UnixTime]: https://en.wikipedia.org/wiki/Unix_time "Unix Time"
-[xpath]: https://developer.mozilla.org/en-US/docs/Web/XPath "xpath"
-
-[Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array "Array"
-[boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type "Boolean"
-[Buffer]: https://nodejs.org/api/buffer.html#buffer_class_buffer "Buffer"
-[ChildProcess]: https://nodejs.org/api/child_process.html "ChildProcess"
-[Date]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date "Date"
-[Error]: https://nodejs.org/api/errors.html#errors_class_error "Error"
-[EventEmitter]: https://nodejs.org/api/events.html#events_class_eventemitter "EventEmitter"
-[function]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function "Function"
-[FormData]: https://developer.mozilla.org/en-US/docs/Web/API/FormData "FormData"
-[Map]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map "Map"
-[Metadata]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object "Object<string, any>"
-[null]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null "null"
-[number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number"
-[Object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object "Object"
-[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"
-[Readable]: https://nodejs.org/api/stream.html#stream_class_stream_readable "Readable"
-[ReadStream]: https://nodejs.org/api/fs.html#class-fsreadstream "ReadStream"
-[RegExp]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp "RegExp"
-[string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "string"
-[void]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined "void"
-[URL]: https://nodejs.org/api/url.html "URL"
-[URLSearchParams]: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams "URLSearchParams"
-
-[all available image tags]: https://mcr.microsoft.com/en-us/product/playwright/about "all available image tags"
-[Microsoft Artifact Registry]: https://mcr.microsoft.com/en-us/product/playwright/about "Microsoft Artifact Registry"
-[Dockerfile.noble]: https://github.com/microsoft/playwright/blob/main/utils/docker/Dockerfile.noble "Dockerfile.noble"
diff --git a/nodejs/versioned_docs/version-stable/api/class-android.mdx b/nodejs/versioned_docs/version-stable/api/class-android.mdx
index 180b780be04..5df34f8dd16 100644
--- a/nodejs/versioned_docs/version-stable/api/class-android.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-android.mdx
@@ -244,7 +244,6 @@ android.setDefaultTimeout(timeout);
Maximum time in milliseconds
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-androiddevice.mdx b/nodejs/versioned_docs/version-stable/api/class-androiddevice.mdx
index 5e628dfc641..a6ba2d859bb 100644
--- a/nodejs/versioned_docs/version-stable/api/class-androiddevice.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-androiddevice.mdx
@@ -940,7 +940,6 @@ androidDevice.on('webview', data => {});
- [AndroidWebView]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-androidinput.mdx b/nodejs/versioned_docs/version-stable/api/class-androidinput.mdx
index 30ab549be38..5b8d3393a6d 100644
--- a/nodejs/versioned_docs/version-stable/api/class-androidinput.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-androidinput.mdx
@@ -158,7 +158,6 @@ await androidInput.type(text);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-androidsocket.mdx b/nodejs/versioned_docs/version-stable/api/class-androidsocket.mdx
index 2aceae3d950..0e32f9feb6b 100644
--- a/nodejs/versioned_docs/version-stable/api/class-androidsocket.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-androidsocket.mdx
@@ -85,7 +85,6 @@ androidSocket.on('data', data => {});
- [Buffer]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-androidwebview.mdx b/nodejs/versioned_docs/version-stable/api/class-androidwebview.mdx
index 83b8198e26e..ac1cc740376 100644
--- a/nodejs/versioned_docs/version-stable/api/class-androidwebview.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-androidwebview.mdx
@@ -80,7 +80,6 @@ androidWebView.on('close', data => {});
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-apirequest.mdx b/nodejs/versioned_docs/version-stable/api/class-apirequest.mdx
index d93d91e3b55..96b1c5220c0 100644
--- a/nodejs/versioned_docs/version-stable/api/class-apirequest.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-apirequest.mdx
@@ -168,7 +168,6 @@ await apiRequest.newContext(options);
- [Promise]<[APIRequestContext]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-apirequestcontext.mdx b/nodejs/versioned_docs/version-stable/api/class-apirequestcontext.mdx
index becb68c8048..2bfdad0740d 100644
--- a/nodejs/versioned_docs/version-stable/api/class-apirequestcontext.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-apirequestcontext.mdx
@@ -625,7 +625,6 @@ await apiRequestContext.storageState(options);
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-apiresponse.mdx b/nodejs/versioned_docs/version-stable/api/class-apiresponse.mdx
index c9e92db9165..0ac972bb669 100644
--- a/nodejs/versioned_docs/version-stable/api/class-apiresponse.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-apiresponse.mdx
@@ -191,7 +191,6 @@ apiResponse.url();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-apiresponseassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
index 1c91dbdf8ab..1050a54e6b6 100644
--- a/nodejs/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
@@ -63,7 +63,6 @@ expect(response).not
- [APIResponseAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-browser.mdx b/nodejs/versioned_docs/version-stable/api/class-browser.mdx
index 755023ae855..e3208aad8de 100644
--- a/nodejs/versioned_docs/version-stable/api/class-browser.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-browser.mdx
@@ -862,7 +862,6 @@ browser.on('disconnected', data => {});
- [Browser]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-browsercontext.mdx b/nodejs/versioned_docs/version-stable/api/class-browsercontext.mdx
index 6722270d6e3..f168b63a539 100644
--- a/nodejs/versioned_docs/version-stable/api/class-browsercontext.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-browsercontext.mdx
@@ -50,13 +50,13 @@ await browserContext.addCookies([cookieObject1, cookieObject2]);
- `url` [string] *(optional)*
- Either url or domain / path are required. Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `domain` [string] *(optional)*
- For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either url or domain / path are required. Optional.
+ For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either `url` or both `domain` and `path` are required. Optional.
- `path` [string] *(optional)*
- Either url or domain / path are required Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `expires` [number] *(optional)*
Unix time in seconds. Optional.
@@ -1328,7 +1328,6 @@ await browserContext.setHTTPCredentials(httpCredentials);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-browserserver.mdx b/nodejs/versioned_docs/version-stable/api/class-browserserver.mdx
index 2dfdc6c3aac..f636d8ba612 100644
--- a/nodejs/versioned_docs/version-stable/api/class-browserserver.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-browserserver.mdx
@@ -99,7 +99,6 @@ browserServer.on('close', data => {});
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-browsertype.mdx b/nodejs/versioned_docs/version-stable/api/class-browsertype.mdx
index e226dc74c28..ff8b676b9a9 100644
--- a/nodejs/versioned_docs/version-stable/api/class-browsertype.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-browsertype.mdx
@@ -743,7 +743,6 @@ browserType.name();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-cdpsession.mdx b/nodejs/versioned_docs/version-stable/api/class-cdpsession.mdx
index 8d321cacdf0..16a2f04d116 100644
--- a/nodejs/versioned_docs/version-stable/api/class-cdpsession.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-cdpsession.mdx
@@ -71,7 +71,6 @@ await cdpSession.send(method, params);
- [Promise]<[Object]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-clock.mdx b/nodejs/versioned_docs/version-stable/api/class-clock.mdx
index 20fdb94a376..fc9247a6022 100644
--- a/nodejs/versioned_docs/version-stable/api/class-clock.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-clock.mdx
@@ -199,7 +199,6 @@ await page.clock.setSystemTime('2020-02-02');
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-consolemessage.mdx b/nodejs/versioned_docs/version-stable/api/class-consolemessage.mdx
index 2b92dadfdae..508766af369 100644
--- a/nodejs/versioned_docs/version-stable/api/class-consolemessage.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-consolemessage.mdx
@@ -124,8 +124,24 @@ consoleMessage.type();
**Returns**
- "log" | "debug" | "info" | "error" | "warning" | "dir" | "dirxml" | "table" | "trace" | "clear" | "startGroup" | "startGroupCollapsed" | "endGroup" | "assert" | "profile" | "profileEnd" | "count" | "timeEnd"#
+---
+
+### worker {#console-message-worker}
+
+Added in: v1.57consoleMessage.worker
+
+The web worker or service worker that produced this console message, if any. Note that console messages from web workers also have non-null [consoleMessage.page()](/api/class-consolemessage.mdx#console-message-page).
+
+**Usage**
+
+```js
+consoleMessage.worker();
+```
+
+**Returns**
+- [null] | [Worker]#
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-coverage.mdx b/nodejs/versioned_docs/version-stable/api/class-coverage.mdx
index 4c64d6cf908..00112c43a60 100644
--- a/nodejs/versioned_docs/version-stable/api/class-coverage.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-coverage.mdx
@@ -183,7 +183,6 @@ await coverage.stopJSCoverage();
V8-specific coverage format.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-dialog.mdx b/nodejs/versioned_docs/version-stable/api/class-dialog.mdx
index 1f3347fc018..8f5d4a08819 100644
--- a/nodejs/versioned_docs/version-stable/api/class-dialog.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-dialog.mdx
@@ -142,7 +142,6 @@ dialog.type();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-download.mdx b/nodejs/versioned_docs/version-stable/api/class-download.mdx
index 1b22f24a763..520cc764610 100644
--- a/nodejs/versioned_docs/version-stable/api/class-download.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-download.mdx
@@ -51,6 +51,11 @@ await download.cancel();
Returns a readable stream for a successful download, or throws for a failed/canceled download.
+:::note
+
+If you don't need a readable stream, it's usually simpler to read the file from disk after the download completed. See [download.path()](/api/class-download.mdx#download-path).
+:::
+
**Usage**
```js
@@ -187,7 +192,6 @@ download.url();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-electron.mdx b/nodejs/versioned_docs/version-stable/api/class-electron.mdx
index f73104f385d..8d4a4fc937e 100644
--- a/nodejs/versioned_docs/version-stable/api/class-electron.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-electron.mdx
@@ -180,7 +180,6 @@ await electron.launch(options);
- [Promise]<[ElectronApplication]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-electronapplication.mdx b/nodejs/versioned_docs/version-stable/api/class-electronapplication.mdx
index 544f41b9c1e..005b4b9f641 100644
--- a/nodejs/versioned_docs/version-stable/api/class-electronapplication.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-electronapplication.mdx
@@ -311,7 +311,6 @@ electronApplication.on('window', data => {});
- [Page]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-elementhandle.mdx b/nodejs/versioned_docs/version-stable/api/class-elementhandle.mdx
index 9f11669d1a8..9c2583e93ba 100644
--- a/nodejs/versioned_docs/version-stable/api/class-elementhandle.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-elementhandle.mdx
@@ -429,6 +429,9 @@ await elementHandle.click(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [number] *(optional)*#
Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout` option in the config, or by using the [browserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -503,6 +506,9 @@ await elementHandle.dblclick(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [number] *(optional)*#
Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout` option in the config, or by using the [browserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -1586,7 +1592,6 @@ This method does not work across navigations, use [page.waitForSelector()](/api/
- [Promise]<[null] | [ElementHandle]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-filechooser.mdx b/nodejs/versioned_docs/version-stable/api/class-filechooser.mdx
index 99f5cb32318..c343795440a 100644
--- a/nodejs/versioned_docs/version-stable/api/class-filechooser.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-filechooser.mdx
@@ -114,7 +114,6 @@ await fileChooser.setFiles(files, options);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-fixtures.mdx b/nodejs/versioned_docs/version-stable/api/class-fixtures.mdx
index 7425517af01..7bf93dae008 100644
--- a/nodejs/versioned_docs/version-stable/api/class-fixtures.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-fixtures.mdx
@@ -147,7 +147,6 @@ test('basic test', async ({ request }) => {
- [APIRequestContext]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-frame.mdx b/nodejs/versioned_docs/version-stable/api/class-frame.mdx
index 397db6b0ccb..6e8c9f484b8 100644
--- a/nodejs/versioned_docs/version-stable/api/class-frame.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-frame.mdx
@@ -176,6 +176,9 @@ await frame.dragAndDrop(source, target, options);
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `strict` [boolean] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -2651,7 +2654,6 @@ await frame.waitForTimeout(timeout);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-framelocator.mdx b/nodejs/versioned_docs/version-stable/api/class-framelocator.mdx
index 5282e3eab77..9605686033d 100644
--- a/nodejs/versioned_docs/version-stable/api/class-framelocator.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-framelocator.mdx
@@ -536,7 +536,6 @@ frameLocator.nth(index);
- [FrameLocator]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-fullconfig.mdx b/nodejs/versioned_docs/version-stable/api/class-fullconfig.mdx
index 39899fdd35f..fa00830f5f9 100644
--- a/nodejs/versioned_docs/version-stable/api/class-fullconfig.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-fullconfig.mdx
@@ -321,6 +321,23 @@ fullConfig.shard
---
+### tags {#full-config-tags}
+
+Added in: v1.57fullConfig.tags
+
+Resolved global tags. See [testConfig.tag](/api/class-testconfig.mdx#test-config-tag).
+
+**Usage**
+
+```js
+fullConfig.tags
+```
+
+**Type**
+- [Array]<[string]>
+
+---
+
### updateSnapshots {#full-config-update-snapshots}
Added in: v1.10fullConfig.updateSnapshots
@@ -405,7 +422,6 @@ fullConfig.workers
- [number]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-fullproject.mdx b/nodejs/versioned_docs/version-stable/api/class-fullproject.mdx
index edc9d6deb17..29752586f38 100644
--- a/nodejs/versioned_docs/version-stable/api/class-fullproject.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-fullproject.mdx
@@ -268,7 +268,6 @@ fullProject.use
- [Fixtures]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-genericassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-genericassertions.mdx
index 52e3c4d3761..3a5ddfe0efb 100644
--- a/nodejs/versioned_docs/version-stable/api/class-genericassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-genericassertions.mdx
@@ -88,6 +88,30 @@ expect([1, 2, 3]).not.toEqual(expect.arrayContaining([1, 4]));
---
+### arrayOf {#generic-assertions-array-of}
+
+Added in: v1.57genericAssertions.arrayOf
+
+`expect.arrayOf()` matches array of objects created from the [constructor](/api/class-genericassertions.mdx#generic-assertions-array-of-option-constructor) or a corresponding primitive type. Use it inside [expect(value).toEqual()](/api/class-genericassertions.mdx#generic-assertions-to-equal) to perform pattern matching.
+
+**Usage**
+
+```js
+// Match instance of a class.
+class Example {}
+expect([new Example(), new Example()]).toEqual(expect.arrayOf(Example));
+
+// Match any string.
+expect(['a', 'b', 'c']).toEqual(expect.arrayOf(String));
+```
+
+**Arguments**
+- `constructor` [Function]#
+
+ Constructor of the expected object like `ExampleClass`, or a primitive boxed type like `Number`.
+
+---
+
### closeTo {#generic-assertions-close-to}
Added in: v1.9genericAssertions.closeTo
@@ -530,6 +554,7 @@ expect(value).toEqual({ prop: 1 });
* [expect(value).any()](/api/class-genericassertions.mdx#generic-assertions-any)
* [expect(value).anything()](/api/class-genericassertions.mdx#generic-assertions-anything)
* [expect(value).arrayContaining()](/api/class-genericassertions.mdx#generic-assertions-array-containing)
+* [expect(value).arrayOf()](/api/class-genericassertions.mdx#generic-assertions-array-of)
* [expect(value).closeTo()](/api/class-genericassertions.mdx#generic-assertions-close-to)
* [expect(value).objectContaining()](/api/class-genericassertions.mdx#generic-assertions-object-containing)
* [expect(value).stringContaining()](/api/class-genericassertions.mdx#generic-assertions-string-containing)
@@ -760,7 +785,6 @@ expect(value).not
- [GenericAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-jshandle.mdx b/nodejs/versioned_docs/version-stable/api/class-jshandle.mdx
index 6139cef830c..91512d911ac 100644
--- a/nodejs/versioned_docs/version-stable/api/class-jshandle.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-jshandle.mdx
@@ -185,7 +185,6 @@ await jsHandle.jsonValue();
- [Promise]<[Serializable]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-keyboard.mdx b/nodejs/versioned_docs/version-stable/api/class-keyboard.mdx
index 850dfba6383..c6e877d211b 100644
--- a/nodejs/versioned_docs/version-stable/api/class-keyboard.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-keyboard.mdx
@@ -226,7 +226,6 @@ await keyboard.up(key);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-location.mdx b/nodejs/versioned_docs/version-stable/api/class-location.mdx
index c44e9ecbc0f..0bb4c721c31 100644
--- a/nodejs/versioned_docs/version-stable/api/class-location.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-location.mdx
@@ -64,7 +64,6 @@ location.line
- [number]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-locator.mdx b/nodejs/versioned_docs/version-stable/api/class-locator.mdx
index 19208a39d5b..623712ee783 100644
--- a/nodejs/versioned_docs/version-stable/api/class-locator.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-locator.mdx
@@ -383,6 +383,9 @@ await page.locator('canvas').click({
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [number] *(optional)*#
Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout` option in the config, or by using the [browserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -496,6 +499,9 @@ await locator.dblclick(options);
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [number] *(optional)*#
Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout` option in the config, or by using the [browserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -547,6 +553,27 @@ await button.click();
---
+### description {#locator-description}
+
+Added in: v1.57locator.description
+
+Returns locator description previously set with [locator.describe()](/api/class-locator.mdx#locator-describe). Returns `null` if no custom description has been set. Prefer `Locator.toString()` for a human-readable representation, as it uses the description when available.
+
+**Usage**
+
+```js
+const button = page.getByRole('button').describe('Subscribe button');
+console.log(button.description()); // "Subscribe button"
+
+const input = page.getByRole('textbox');
+console.log(input.description()); // null
+```
+
+**Returns**
+- [null] | [string]#
+
+---
+
### dispatchEvent {#locator-dispatch-event}
Added in: v1.14locator.dispatchEvent
@@ -645,6 +672,9 @@ await source.dragTo(target, {
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `targetPosition` [Object] *(optional)*#
- `x` [number]
@@ -2489,7 +2519,6 @@ To press a special key, like `Control` or `ArrowDown`, use [locator.press()](/ap
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-locatorassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-locatorassertions.mdx
index e23f2f82614..9e7a3e0cdcc 100644
--- a/nodejs/versioned_docs/version-stable/api/class-locatorassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-locatorassertions.mdx
@@ -1090,7 +1090,6 @@ expect(locator).not
- [LocatorAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-logger.mdx b/nodejs/versioned_docs/version-stable/api/class-logger.mdx
index c549adb1ce6..e291800f4b6 100644
--- a/nodejs/versioned_docs/version-stable/api/class-logger.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-logger.mdx
@@ -85,7 +85,6 @@ logger.log(name, severity, message, args, hints);
optional formatting hints
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-mouse.mdx b/nodejs/versioned_docs/version-stable/api/class-mouse.mdx
index 46415239c00..21c60e8102d 100644
--- a/nodejs/versioned_docs/version-stable/api/class-mouse.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-mouse.mdx
@@ -151,7 +151,7 @@ await mouse.move(x, y, options);
- `options` [Object] *(optional)*
- `steps` [number] *(optional)*#
- Defaults to 1. Sends intermediate `mousemove` events.
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
**Returns**
- [Promise]<[void]>#
@@ -214,7 +214,6 @@ await mouse.wheel(deltaX, deltaY);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-page.mdx b/nodejs/versioned_docs/version-stable/api/class-page.mdx
index 0543277a1dc..2d070378d07 100644
--- a/nodejs/versioned_docs/version-stable/api/class-page.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-page.mdx
@@ -403,6 +403,9 @@ await page.dragAndDrop('#source', '#target', {
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+ - `steps` [number] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `strict` [boolean] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -3025,28 +3028,6 @@ const divCounts = await page.$$eval('div', (divs, min) => divs.length >= min, 10
---
-### accessibility {#page-accessibility}
-
-Added before v1.9page.accessibility
-
-:::warning Deprecated
-
-This property is discouraged. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-**Usage**
-
-```js
-page.accessibility
-```
-
-**Type**
-- [Accessibility]
-
----
-
### check {#page-check}
Added before v1.9page.check
@@ -4515,7 +4496,6 @@ await page.waitForTimeout(1000);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-pageassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-pageassertions.mdx
index 5c71ee88b6d..5e1bde1dddf 100644
--- a/nodejs/versioned_docs/version-stable/api/class-pageassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-pageassertions.mdx
@@ -273,7 +273,6 @@ expect(page).not
- [PageAssertions]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-playwright.mdx b/nodejs/versioned_docs/version-stable/api/class-playwright.mdx
index 50abdcfeb58..8f0437ad0dc 100644
--- a/nodejs/versioned_docs/version-stable/api/class-playwright.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-playwright.mdx
@@ -177,7 +177,6 @@ playwright.webkit
- [BrowserType]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-playwrightassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-playwrightassertions.mdx
index 975832568a5..9be59709264 100644
--- a/nodejs/versioned_docs/version-stable/api/class-playwrightassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-playwrightassertions.mdx
@@ -105,7 +105,6 @@ Creates a [PageAssertions] object for the given [Page].
- [PageAssertions]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-reporter.mdx b/nodejs/versioned_docs/version-stable/api/class-reporter.mdx
index 20dea760129..d30824d02b7 100644
--- a/nodejs/versioned_docs/version-stable/api/class-reporter.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-reporter.mdx
@@ -107,6 +107,10 @@ Additionally, [reporter.onStdOut()](/api/class-reporter.mdx#reporter-on-std-out)
If your custom reporter does not print anything to the terminal, implement [reporter.printsToStdio()](/api/class-reporter.mdx#reporter-prints-to-stdio) and return `false`. This way, Playwright will use one of the standard terminal reporters in addition to your custom reporter to enhance user experience.
+**Reporter errors**
+
+Playwright will swallow any errors thrown in your custom reporter methods. If you need to detect or fail on reporter errors, you must wrap and handle them yourself.
+
**Merged report API notes**
When merging multiple [`blob`](../test-reporters#blob-reporter) reports via [`merge-reports`](../test-sharding#merge-reports-cli) CLI command, the same [Reporter] API is called to produce final reports and all existing reporters should work without any changes. There some subtle differences though which might affect some custom reporters.
@@ -372,7 +376,6 @@ reporter.printsToStdio();
- [boolean]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-request.mdx b/nodejs/versioned_docs/version-stable/api/class-request.mdx
index 097954e0605..18b9c4b6eb1 100644
--- a/nodejs/versioned_docs/version-stable/api/class-request.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-request.mdx
@@ -449,7 +449,6 @@ request.url();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-response.mdx b/nodejs/versioned_docs/version-stable/api/class-response.mdx
index 9708a479779..346bca72b54 100644
--- a/nodejs/versioned_docs/version-stable/api/class-response.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-response.mdx
@@ -357,7 +357,6 @@ response.url();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-route.mdx b/nodejs/versioned_docs/version-stable/api/class-route.mdx
index 268a3beb783..f8092afc9ea 100644
--- a/nodejs/versioned_docs/version-stable/api/class-route.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-route.mdx
@@ -310,7 +310,6 @@ route.request();
- [Request]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-selectors.mdx b/nodejs/versioned_docs/version-stable/api/class-selectors.mdx
index 5408cb3db3b..1f0463565ee 100644
--- a/nodejs/versioned_docs/version-stable/api/class-selectors.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-selectors.mdx
@@ -100,7 +100,6 @@ selectors.setTestIdAttribute(attributeName);
Test id attribute name.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-snapshotassertions.mdx b/nodejs/versioned_docs/version-stable/api/class-snapshotassertions.mdx
index 25a2815b07a..cc15a3e11e4 100644
--- a/nodejs/versioned_docs/version-stable/api/class-snapshotassertions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-snapshotassertions.mdx
@@ -118,7 +118,6 @@ Note that matching snapshots only work with Playwright test runner.
An acceptable perceived color difference in the [YIQ color space](https://en.wikipedia.org/wiki/YIQ) between the same pixel in compared images, between zero (strict) and one (lax), default is configurable with `TestConfig.expect`. Defaults to `0.2`.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-suite.mdx b/nodejs/versioned_docs/version-stable/api/class-suite.mdx
index 5e78d23b6ae..277e25cdf1e 100644
--- a/nodejs/versioned_docs/version-stable/api/class-suite.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-suite.mdx
@@ -204,7 +204,6 @@ suite.type
- "root" | "project" | "file" | "describe"
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-test.mdx b/nodejs/versioned_docs/version-stable/api/class-test.mdx
index 9f46d902823..b68080aa14f 100644
--- a/nodejs/versioned_docs/version-stable/api/class-test.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-test.mdx
@@ -1419,7 +1419,7 @@ function step(target: Function, context: ClassMethodDecoratorContext) {
const name = this.constructor.name + '.' + (context.name as string);
return test.step(name, async () => {
return await target.call(this, ...args);
- });
+ }, { box: true });
};
}
@@ -1877,7 +1877,6 @@ test.describe.serial.only(() => {
A callback that is run immediately when calling [test.describe.serial.only()](/api/class-test.mdx#test-describe-serial-only). Any tests added in this callback will belong to the group.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testcase.mdx b/nodejs/versioned_docs/version-stable/api/class-testcase.mdx
index 7b0079fe2ba..194370aee33 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testcase.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testcase.mdx
@@ -290,7 +290,6 @@ testCase.type
- "test"
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testconfig.mdx b/nodejs/versioned_docs/version-stable/api/class-testconfig.mdx
index 4ef4d7d3711..0b6c9d50459 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testconfig.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testconfig.mdx
@@ -608,7 +608,7 @@ The list of reporters to use. Each reporter can be:
* A module name like `'my-awesome-reporter'`.
* A relative path to the reporter like `'./reporters/my-awesome-reporter.js'`.
-You can pass options to the reporter in a tuple like `['json', { outputFile: './report.json' }]`.
+You can pass options to the reporter in a tuple like `['json', { outputFile: './report.json' }]`. If the property is not specified, Playwright uses the `'dot'` reporter when the CI environment variable is set, and the `'list'` reporter otherwise.
Learn more in the [reporters guide](../test-reporters.mdx).
@@ -805,6 +805,29 @@ In this config:
---
+### tag {#test-config-tag}
+
+Added in: v1.57testConfig.tag
+
+Tag or tags prepended to each test in the report. Useful for tagging your test run to differentiate between [CI environments](../test-sharding.mdx#merging-reports-from-multiple-environments).
+
+Note that each tag must start with `@` symbol. Learn more about [tagging](../test-annotations.mdx#tag-tests).
+
+**Usage**
+
+```js title="playwright.config.ts"
+import { defineConfig } from '@playwright/test';
+
+export default defineConfig({
+ tag: process.env.CI_ENVIRONMENT_NAME, // for example "@APIv2"
+});
+```
+
+**Type**
+- [string] | [Array]<[string]>
+
+---
+
### testDir {#test-config-test-dir}
Added in: v1.10testConfig.testDir
@@ -1047,6 +1070,31 @@ export default defineConfig({
});
```
+If your webserver runs on varying ports, use `wait` to capture the port:
+
+```js
+import { defineConfig } from '@playwright/test';
+
+export default defineConfig({
+ webServer: {
+ command: 'npm run start',
+ wait: {
+ stdout: '/Listening on port (?\\d+)/'
+ },
+ },
+});
+```
+
+```js
+import { test, expect } from '@playwright/test';
+
+test.use({ baseUrl: `http://localhost:${process.env.MY_SERVER_PORT ?? 3000}` });
+
+test('homepage', async ({ page }) => {
+ await page.goto('/');
+});
+```
+
**Type**
- [Object] | [Array]<[Object]>
- `command` [string]
@@ -1084,6 +1132,15 @@ export default defineConfig({
- `stdout` "pipe" | "ignore" *(optional)*
If `"pipe"`, it will pipe the stdout of the command to the process stdout. If `"ignore"`, it will ignore the stdout of the command. Default to `"ignore"`.
+ - `wait` [Object] *(optional)*
+ - `stdout` [RegExp] *(optional)*
+
+ Regular expression to wait for in the `stdout` of the command output. Named capture groups are stored in the environment, for example `/Listening on port (?\\d+)/` will store the port number in `process.env['MY_SERVER_PORT']`.
+ - `stderr` [RegExp] *(optional)*
+
+ Regular expression to wait for in the `stderr` of the command output. Named capture groups are stored in the environment, for example `/Listening on port (?\\d+)/` will store the port number in `process.env['MY_SERVER_PORT']`.
+
+ Consider command started only when given output has been produced.
- `timeout` [number] *(optional)*
How long to wait for the process to start up and be available in milliseconds. Defaults to 60000.
@@ -1166,7 +1223,6 @@ The directory for each test can be accessed by [testInfo.snapshotDir](/api/class
This path will serve as the base directory for each test file snapshot directory. Setting `snapshotDir` to `'snapshots'`, the [testInfo.snapshotDir](/api/class-testinfo.mdx#test-info-snapshot-dir) would resolve to `snapshots/a.spec.js-snapshots`.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testerror.mdx b/nodejs/versioned_docs/version-stable/api/class-testerror.mdx
index cf73cf29366..908b2b03527 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testerror.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testerror.mdx
@@ -115,7 +115,6 @@ testError.value
- [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testinfo.mdx b/nodejs/versioned_docs/version-stable/api/class-testinfo.mdx
index 54fe20911a8..9b396cadebe 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testinfo.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testinfo.mdx
@@ -861,7 +861,6 @@ testInfo.workerIndex
- [number]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testinfoerror.mdx b/nodejs/versioned_docs/version-stable/api/class-testinfoerror.mdx
index ea196dca906..81f237a2b17 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testinfoerror.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testinfoerror.mdx
@@ -81,7 +81,6 @@ testInfoError.value
- [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testoptions.mdx b/nodejs/versioned_docs/version-stable/api/class-testoptions.mdx
index b5065a8c32d..022953ddf98 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testoptions.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testoptions.mdx
@@ -1082,7 +1082,6 @@ export default defineConfig({
page height in pixels.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testproject.mdx b/nodejs/versioned_docs/version-stable/api/class-testproject.mdx
index 94be0e199b1..bd0d80b316c 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testproject.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testproject.mdx
@@ -765,7 +765,6 @@ export default defineConfig({
- [number] | [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-testresult.mdx b/nodejs/versioned_docs/version-stable/api/class-testresult.mdx
index 9361fbeba0d..732d22b35fc 100644
--- a/nodejs/versioned_docs/version-stable/api/class-testresult.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-testresult.mdx
@@ -266,7 +266,6 @@ testResult.workerIndex
- [number]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-teststep.mdx b/nodejs/versioned_docs/version-stable/api/class-teststep.mdx
index b3eaa0f4dbf..b012a91ec43 100644
--- a/nodejs/versioned_docs/version-stable/api/class-teststep.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-teststep.mdx
@@ -229,7 +229,6 @@ testStep.title
- [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-teststepinfo.mdx b/nodejs/versioned_docs/version-stable/api/class-teststepinfo.mdx
index b23a4a31eef..ea57cef8236 100644
--- a/nodejs/versioned_docs/version-stable/api/class-teststepinfo.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-teststepinfo.mdx
@@ -160,7 +160,6 @@ testStepInfo.titlePath
- [Array]<[string]>
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-timeouterror.mdx b/nodejs/versioned_docs/version-stable/api/class-timeouterror.mdx
index 04896071a00..dcdafa8fd7b 100644
--- a/nodejs/versioned_docs/version-stable/api/class-timeouterror.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-timeouterror.mdx
@@ -31,7 +31,6 @@ const playwright = require('playwright');
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-touchscreen.mdx b/nodejs/versioned_docs/version-stable/api/class-touchscreen.mdx
index 8edddf5a38b..affa0426ed4 100644
--- a/nodejs/versioned_docs/version-stable/api/class-touchscreen.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-touchscreen.mdx
@@ -45,7 +45,6 @@ await touchscreen.tap(x, y);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-tracing.mdx b/nodejs/versioned_docs/version-stable/api/class-tracing.mdx
index 45ace077818..89507a47dc1 100644
--- a/nodejs/versioned_docs/version-stable/api/class-tracing.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-tracing.mdx
@@ -225,7 +225,6 @@ await tracing.stopChunk(options);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-video.mdx b/nodejs/versioned_docs/version-stable/api/class-video.mdx
index ca8cfcd9a02..443c312dd13 100644
--- a/nodejs/versioned_docs/version-stable/api/class-video.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-video.mdx
@@ -73,7 +73,6 @@ await video.saveAs(path);
- [Promise]<[void]>#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-weberror.mdx b/nodejs/versioned_docs/version-stable/api/class-weberror.mdx
index 36ac8ab3872..e171e785b51 100644
--- a/nodejs/versioned_docs/version-stable/api/class-weberror.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-weberror.mdx
@@ -57,7 +57,6 @@ webError.page();
- [null] | [Page]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-websocket.mdx b/nodejs/versioned_docs/version-stable/api/class-websocket.mdx
index a5d457bbdee..09d4af5050a 100644
--- a/nodejs/versioned_docs/version-stable/api/class-websocket.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-websocket.mdx
@@ -161,7 +161,6 @@ webSocket.on('socketerror', data => {});
- [string]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-websocketroute.mdx b/nodejs/versioned_docs/version-stable/api/class-websocketroute.mdx
index 12be0f5e2da..b80ad8539af 100644
--- a/nodejs/versioned_docs/version-stable/api/class-websocketroute.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-websocketroute.mdx
@@ -212,7 +212,6 @@ webSocketRoute.url();
- [string]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-worker.mdx b/nodejs/versioned_docs/version-stable/api/class-worker.mdx
index d540273eec9..702f80b884c 100644
--- a/nodejs/versioned_docs/version-stable/api/class-worker.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-worker.mdx
@@ -100,6 +100,44 @@ worker.url();
---
+### waitForEvent {#worker-wait-for-event}
+
+Added in: v1.57worker.waitForEvent
+
+Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy value. Will throw an error if the page is closed before the event is fired. Returns the event data value.
+
+**Usage**
+
+```js
+// Start waiting for download before clicking. Note no await.
+const consolePromise = worker.waitForEvent('console');
+await worker.evaluate('console.log(42)');
+const consoleMessage = await consolePromise;
+```
+
+**Arguments**
+- `event` [string]#
+
+ Event name, same one typically passed into `*.on(event)`.
+- `optionsOrPredicate` [function] | [Object] *(optional)*#
+ - `predicate` [function]
+
+ Receives the event data and resolves to truthy value when the waiting should resolve.
+ - `timeout` [number] *(optional)*
+
+ Maximum time to wait for in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout` option in the config, or by using the [browserContext.setDefaultTimeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.setDefaultTimeout()](/api/class-page.mdx#page-set-default-timeout) methods.
+
+ Either a predicate that receives an event or an options object. Optional.
+- `options` [Object] *(optional)*
+ - `predicate` [function] *(optional)*#
+
+ Receives the event data and resolves to truthy value when the waiting should resolve.
+
+**Returns**
+- [Promise]<[Object]>#
+
+---
+
## Events
### on('close') {#worker-event-close}
@@ -117,8 +155,24 @@ worker.on('close', data => {});
**Event data**
- [Worker]
+---
+
+### on('console') {#worker-event-console}
+
+Added in: v1.57worker.on('console')
+
+Emitted when JavaScript within the worker calls one of console API methods, e.g. `console.log` or `console.dir`.
+
+**Usage**
+
+```js
+worker.on('console', data => {});
+```
+
+**Event data**
+- [ConsoleMessage]
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/api/class-workerinfo.mdx b/nodejs/versioned_docs/version-stable/api/class-workerinfo.mdx
index c462f54b206..92ed01ef65c 100644
--- a/nodejs/versioned_docs/version-stable/api/class-workerinfo.mdx
+++ b/nodejs/versioned_docs/version-stable/api/class-workerinfo.mdx
@@ -85,7 +85,6 @@ workerInfo.workerIndex
- [number]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/aria-snapshots.mdx b/nodejs/versioned_docs/version-stable/aria-snapshots.mdx
index 928ed1d5483..a6dca0f7796 100644
--- a/nodejs/versioned_docs/version-stable/aria-snapshots.mdx
+++ b/nodejs/versioned_docs/version-stable/aria-snapshots.mdx
@@ -434,7 +434,6 @@ Commonly used ARIA attributes, like `checked`, `disabled`, `expanded`, `level`,
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/auth.mdx b/nodejs/versioned_docs/version-stable/auth.mdx
index b5810db4e34..ede1747a40c 100644
--- a/nodejs/versioned_docs/version-stable/auth.mdx
+++ b/nodejs/versioned_docs/version-stable/auth.mdx
@@ -527,7 +527,6 @@ test('not signed in test', async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/best-practices.mdx b/nodejs/versioned_docs/version-stable/best-practices.mdx
index b014115c576..87407800c0e 100644
--- a/nodejs/versioned_docs/version-stable/best-practices.mdx
+++ b/nodejs/versioned_docs/version-stable/best-practices.mdx
@@ -511,7 +511,6 @@ await page.getByRole('link', { name: 'next page' }).click();
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/browser-contexts.mdx b/nodejs/versioned_docs/version-stable/browser-contexts.mdx
index d9e7f0c5fbd..e5a9783c254 100644
--- a/nodejs/versioned_docs/version-stable/browser-contexts.mdx
+++ b/nodejs/versioned_docs/version-stable/browser-contexts.mdx
@@ -115,7 +115,6 @@ const userPage = await userContext.newPage();
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/browsers.mdx b/nodejs/versioned_docs/version-stable/browsers.mdx
index 0f00b7260b8..3ea65550316 100644
--- a/nodejs/versioned_docs/version-stable/browsers.mdx
+++ b/nodejs/versioned_docs/version-stable/browsers.mdx
@@ -639,7 +639,6 @@ npx playwright uninstall --all
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/canary-releases.mdx b/nodejs/versioned_docs/version-stable/canary-releases.mdx
index 9340c37001d..4a4405fd2f5 100644
--- a/nodejs/versioned_docs/version-stable/canary-releases.mdx
+++ b/nodejs/versioned_docs/version-stable/canary-releases.mdx
@@ -41,7 +41,6 @@ npm install -D @playwright/test@next
The stable and the `next` documentation is published on [playwright.dev](https://playwright.dev). To see the `next` documentation, press Shift on the keyboard `5` times.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/chrome-extensions.mdx b/nodejs/versioned_docs/version-stable/chrome-extensions.mdx
index 01a01616a50..8afc154d183 100644
--- a/nodejs/versioned_docs/version-stable/chrome-extensions.mdx
+++ b/nodejs/versioned_docs/version-stable/chrome-extensions.mdx
@@ -99,7 +99,6 @@ test('popup page', async ({ page, extensionId }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/ci-intro.mdx b/nodejs/versioned_docs/version-stable/ci-intro.mdx
index 1a63ff40c98..bfc1dde810b 100644
--- a/nodejs/versioned_docs/version-stable/ci-intro.mdx
+++ b/nodejs/versioned_docs/version-stable/ci-intro.mdx
@@ -164,7 +164,6 @@ Artifacts like trace files, HTML reports or even the console logs contain inform
- [Learn more about running tests on other CI providers](/ci.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/ci.mdx b/nodejs/versioned_docs/version-stable/ci.mdx
index 27b0dbbc1b2..c63a4f2913a 100644
--- a/nodejs/versioned_docs/version-stable/ci.mdx
+++ b/nodejs/versioned_docs/version-stable/ci.mdx
@@ -64,7 +64,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- - uses: actions/setup-node@v5
+ - uses: actions/setup-node@v6
with:
node-version: lts/*
- name: Install dependencies
@@ -73,7 +73,7 @@ jobs:
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- - uses: actions/upload-artifact@v4
+ - uses: actions/upload-artifact@v5
if: ${{ !cancelled() }}
with:
name: playwright-report
@@ -101,11 +101,11 @@ jobs:
name: 'Playwright Tests'
runs-on: ubuntu-latest
container:
- image: mcr.microsoft.com/playwright:v1.56.1-noble
+ image: mcr.microsoft.com/playwright:v1.57.0-noble
options: --user 1001
steps:
- uses: actions/checkout@v5
- - uses: actions/setup-node@v5
+ - uses: actions/setup-node@v6
with:
node-version: lts/*
- name: Install dependencies
@@ -129,7 +129,7 @@ jobs:
if: github.event.deployment_status.state == 'success'
steps:
- uses: actions/checkout@v5
- - uses: actions/setup-node@v5
+ - uses: actions/setup-node@v6
with:
node-version: lts/*
- name: Install dependencies
@@ -163,7 +163,7 @@ jobs:
# Force a non-shallow checkout, so that we can reference $GITHUB_BASE_REF.
# See https://github.com/actions/checkout for more details.
fetch-depth: 0
- - uses: actions/setup-node@v5
+ - uses: actions/setup-node@v6
with:
node-version: lts/*
- name: Install dependencies
@@ -175,7 +175,7 @@ jobs:
if: github.event_name == 'pull_request'
- name: Run Playwright tests
run: npx playwright test
- - uses: actions/upload-artifact@v4
+ - uses: actions/upload-artifact@v5
if: ${{ !cancelled() }}
with:
name: playwright-report
@@ -335,7 +335,7 @@ trigger:
pool:
vmImage: ubuntu-latest
-container: mcr.microsoft.com/playwright:v1.56.1-noble
+container: mcr.microsoft.com/playwright:v1.57.0-noble
steps:
- task: UseNode@1
@@ -359,7 +359,7 @@ Running Playwright on CircleCI is very similar to running on GitHub Actions. In
executors:
pw-noble-development:
docker:
- - image: mcr.microsoft.com/playwright:v1.56.1-noble
+ - image: mcr.microsoft.com/playwright:v1.57.0-noble
```
Note: When using the docker agent definition, you are specifying the resource class of where playwright runs to the 'medium' tier [here](https://circleci.com/docs/configuration-reference?#docker-execution-environment). The default behavior of Playwright is to set the number of workers to the detected core count (2 in the case of the medium tier). Overriding the number of workers to greater than this number will cause unnecessary timeouts and failures.
@@ -382,7 +382,7 @@ Jenkins supports Docker agents for pipelines. Use the [Playwright Docker image](
```groovy
pipeline {
- agent { docker { image 'mcr.microsoft.com/playwright:v1.56.1-noble' } }
+ agent { docker { image 'mcr.microsoft.com/playwright:v1.57.0-noble' } }
stages {
stage('e2e-tests') {
steps {
@@ -399,7 +399,7 @@ pipeline {
Bitbucket Pipelines can use public [Docker images as build environments](https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html). To run Playwright tests on Bitbucket, use our public Docker image ([see Dockerfile](./docker.mdx)).
```yml
-image: mcr.microsoft.com/playwright:v1.56.1-noble
+image: mcr.microsoft.com/playwright:v1.57.0-noble
```
### GitLab CI
@@ -412,7 +412,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright:v1.56.1-noble
+ image: mcr.microsoft.com/playwright:v1.57.0-noble
script:
...
```
@@ -427,7 +427,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright:v1.56.1-noble
+ image: mcr.microsoft.com/playwright:v1.57.0-noble
parallel: 7
script:
- npm ci
@@ -442,7 +442,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright:v1.56.1-noble
+ image: mcr.microsoft.com/playwright:v1.57.0-noble
parallel:
matrix:
- PROJECT: ['chromium', 'webkit']
@@ -458,7 +458,7 @@ To run Playwright tests on Google Cloud Build, use our public Docker image ([see
```yml
steps:
-- name: mcr.microsoft.com/playwright:v1.56.1-noble
+- name: mcr.microsoft.com/playwright:v1.57.0-noble
script:
...
env:
@@ -476,7 +476,7 @@ type: docker
steps:
- name: test
- image: mcr.microsoft.com/playwright:v1.56.1-noble
+ image: mcr.microsoft.com/playwright:v1.57.0-noble
commands:
- npx playwright test
```
@@ -506,7 +506,6 @@ xvfb-run npx playwright test
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/clock.mdx b/nodejs/versioned_docs/version-stable/clock.mdx
index beb1a663ae9..3317a1419a4 100644
--- a/nodejs/versioned_docs/version-stable/clock.mdx
+++ b/nodejs/versioned_docs/version-stable/clock.mdx
@@ -177,7 +177,6 @@ await expect(page.getByTestId('current-time')).toHaveText('2/2/2024, 10:00:02 AM
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/codegen-intro.mdx b/nodejs/versioned_docs/version-stable/codegen-intro.mdx
index e3c59778963..a81f988397a 100644
--- a/nodejs/versioned_docs/version-stable/codegen-intro.mdx
+++ b/nodejs/versioned_docs/version-stable/codegen-intro.mdx
@@ -63,7 +63,6 @@ You can generate tests using emulation for specific viewports, devices, color sc
- [See a trace of your tests](./trace-viewer-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/codegen.mdx b/nodejs/versioned_docs/version-stable/codegen.mdx
index f38a1d9f376..f98c388aaef 100644
--- a/nodejs/versioned_docs/version-stable/codegen.mdx
+++ b/nodejs/versioned_docs/version-stable/codegen.mdx
@@ -56,7 +56,7 @@ In the test file in VS Code you will see your new generated actions added to you
### Generating locators
You can generate locators with the test generator.
-- Click on the **Pick locator** button form the testing sidebar and then hover over elements in the browser window to see the [locator](./locators.mdx) highlighted underneath each element.
+- Click on the **Pick locator** button from the testing sidebar and then hover over elements in the browser window to see the [locator](./locators.mdx) highlighted underneath each element.
- Click the element you require and it will now show up in the **Pick locator** box in VS Code.
- Press Enter on your keyboard to copy the locator into the clipboard and then paste anywhere in your code. Or press 'escape' if you want to cancel.
@@ -219,7 +219,6 @@ const { chromium } = require('@playwright/test');
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/debug.mdx b/nodejs/versioned_docs/version-stable/debug.mdx
index 6e4cce80b9c..4e9402c4d88 100644
--- a/nodejs/versioned_docs/version-stable/debug.mdx
+++ b/nodejs/versioned_docs/version-stable/debug.mdx
@@ -316,7 +316,6 @@ await chromium.launch({ headless: false, slowMo: 100 });
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/dialogs.mdx b/nodejs/versioned_docs/version-stable/dialogs.mdx
index a8584745ad5..861a12d0c9c 100644
--- a/nodejs/versioned_docs/version-stable/dialogs.mdx
+++ b/nodejs/versioned_docs/version-stable/dialogs.mdx
@@ -69,7 +69,6 @@ await page.waitForFunction('window.waitForPrintDialog');
This will wait for the print dialog to be opened after the button is clicked. Make sure to evaluate the script before clicking the button / after the page is loaded.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/docker.mdx b/nodejs/versioned_docs/version-stable/docker.mdx
index 0afdb7cda36..8407f593416 100644
--- a/nodejs/versioned_docs/version-stable/docker.mdx
+++ b/nodejs/versioned_docs/version-stable/docker.mdx
@@ -22,7 +22,7 @@ This Docker image is intended to be used for testing and development purposes on
### Pull the image
```bash
-docker pull mcr.microsoft.com/playwright:v1.56.1-noble
+docker pull mcr.microsoft.com/playwright:v1.57.0-noble
```
### Run the image
@@ -34,7 +34,7 @@ By default, the Docker image will use the `root` user to run the browsers. This
On trusted websites, you can avoid creating a separate user and use root for it since you trust the code which will run on the browsers.
```bash
-docker run -it --rm --ipc=host mcr.microsoft.com/playwright:v1.56.1-noble /bin/bash
+docker run -it --rm --ipc=host mcr.microsoft.com/playwright:v1.57.0-noble /bin/bash
```
#### Crawling and scraping
@@ -42,7 +42,7 @@ docker run -it --rm --ipc=host mcr.microsoft.com/playwright:v1.56.1-noble /bin/b
On untrusted websites, it's recommended to use a separate user for launching the browsers in combination with the seccomp profile. Inside the container or if you are using the Docker image as a base image you have to use `adduser` for it.
```bash
-docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright:v1.56.1-noble /bin/bash
+docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright:v1.57.0-noble /bin/bash
```
[`seccomp_profile.json`](https://github.com/microsoft/playwright/blob/main/utils/docker/seccomp_profile.json) is needed to run Chromium with sandbox. This is a [default Docker seccomp profile](https://github.com/docker/engine/blob/d0d99b04cf6e00ed3fc27e81fc3d94e7eda70af3/profiles/seccomp/default.json) with extra user namespace cloning permissions:
@@ -82,7 +82,7 @@ You can run Playwright Server in Docker while keeping your tests running on the
Start the Playwright Server in Docker:
```bash
-docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.1-noble /bin/sh -c "npx -y playwright@1.56.1 run-server --port 3000 --host 0.0.0.0"
+docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.57.0-noble /bin/sh -c "npx -y playwright@1.57.0 run-server --port 3000 --host 0.0.0.0"
```
#### Connecting to the Server
@@ -105,7 +105,7 @@ const browser = await playwright['chromium'].connect('ws://127.0.0.1:3000/');
If you need to access local servers from within the Docker container:
```bash
-docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.1-noble /bin/sh -c "npx -y playwright@1.56.1 run-server --port 3000 --host 0.0.0.0"
+docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.57.0-noble /bin/sh -c "npx -y playwright@1.57.0 run-server --port 3000 --host 0.0.0.0"
```
This makes `hostmachine` point to the host's localhost. Your tests should use `hostmachine` instead of `localhost` when accessing local servers.
@@ -120,9 +120,9 @@ When running tests remotely, ensure the Playwright version in your tests matches
See [all available image tags].
We currently publish images with the following tags:
-- `:v1.56.1` - Playwright v1.56.1 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.56.1-noble` - Playwright v1.56.1 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.56.1-jammy` - Playwright v1.56.1 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
+- `:v1.57.0` - Playwright v1.57.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.57.0-noble` - Playwright v1.57.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.57.0-jammy` - Playwright v1.57.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
:::note
@@ -146,11 +146,10 @@ To run Playwright inside Docker, you need to have Node.js, [Playwright browsers]
```Dockerfile
FROM node:20-bookworm
-RUN npx -y playwright@1.56.1 install --with-deps
+RUN npx -y playwright@1.57.0 install --with-deps
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/downloads.mdx b/nodejs/versioned_docs/version-stable/downloads.mdx
index 38cdd3e6715..6c718242a26 100644
--- a/nodejs/versioned_docs/version-stable/downloads.mdx
+++ b/nodejs/versioned_docs/version-stable/downloads.mdx
@@ -45,7 +45,6 @@ For uploading files, see the [uploading files](./input.mdx#upload-files) section
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/emulation.mdx b/nodejs/versioned_docs/version-stable/emulation.mdx
index 881ac70de5b..3027d5c085c 100644
--- a/nodejs/versioned_docs/version-stable/emulation.mdx
+++ b/nodejs/versioned_docs/version-stable/emulation.mdx
@@ -595,7 +595,6 @@ const context = await browser.newContext({
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/evaluating.mdx b/nodejs/versioned_docs/version-stable/evaluating.mdx
index 267da3f6866..bf905a66d5a 100644
--- a/nodejs/versioned_docs/version-stable/evaluating.mdx
+++ b/nodejs/versioned_docs/version-stable/evaluating.mdx
@@ -138,7 +138,6 @@ test.beforeEach(async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/events.mdx b/nodejs/versioned_docs/version-stable/events.mdx
index f612750074b..bf1cc813d0f 100644
--- a/nodejs/versioned_docs/version-stable/events.mdx
+++ b/nodejs/versioned_docs/version-stable/events.mdx
@@ -58,7 +58,6 @@ await page.evaluate("prompt('Enter a number:')");
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/extensibility.mdx b/nodejs/versioned_docs/version-stable/extensibility.mdx
index a7623f411e9..ed0f2eed754 100644
--- a/nodejs/versioned_docs/version-stable/extensibility.mdx
+++ b/nodejs/versioned_docs/version-stable/extensibility.mdx
@@ -65,7 +65,6 @@ test('selector engine test', async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/frames.mdx b/nodejs/versioned_docs/version-stable/frames.mdx
index 84e5284a9fc..be2073fac3a 100644
--- a/nodejs/versioned_docs/version-stable/frames.mdx
+++ b/nodejs/versioned_docs/version-stable/frames.mdx
@@ -34,7 +34,6 @@ await frame.fill('#username-input', 'John');
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/getting-started-vscode.mdx b/nodejs/versioned_docs/version-stable/getting-started-vscode.mdx
index dc8842681ce..f599664a282 100644
--- a/nodejs/versioned_docs/version-stable/getting-started-vscode.mdx
+++ b/nodejs/versioned_docs/version-stable/getting-started-vscode.mdx
@@ -144,7 +144,6 @@ If you have multiple `playwright.config.ts` files, you can switch between them u
- [Learn more about the Trace Viewer](./trace-viewer.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/handles.mdx b/nodejs/versioned_docs/version-stable/handles.mdx
index 5faafa286bb..d2f37d6070a 100644
--- a/nodejs/versioned_docs/version-stable/handles.mdx
+++ b/nodejs/versioned_docs/version-stable/handles.mdx
@@ -118,7 +118,6 @@ await locator.click();
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/input.mdx b/nodejs/versioned_docs/version-stable/input.mdx
index f25c6253472..923e4bb530a 100644
--- a/nodejs/versioned_docs/version-stable/input.mdx
+++ b/nodejs/versioned_docs/version-stable/input.mdx
@@ -265,7 +265,6 @@ await page.getByTestId('scrolling-container').evaluate(e => e.scrollTop += 100);
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/intro.mdx b/nodejs/versioned_docs/version-stable/intro.mdx
index 9277b96ebf8..62ab626b180 100644
--- a/nodejs/versioned_docs/version-stable/intro.mdx
+++ b/nodejs/versioned_docs/version-stable/intro.mdx
@@ -74,13 +74,11 @@ package.json
package-lock.json # Or yarn.lock / pnpm-lock.yaml
tests/
example.spec.ts # Minimal example test
-tests-examples/
- demo-todo-app.spec.ts # Richer example tests
```
The [playwright.config](./test-configuration.mdx) centralizes configuration: target browsers, timeouts, retries, projects, reporters and more. In existing projects dependencies are added to your current `package.json`.
-`tests/` contains a minimal starter test. `tests-examples/` provides richer samples (e.g. a todo app) to explore patterns.
+`tests/` contains a minimal starter test.
## Running the Example Test
@@ -272,7 +270,6 @@ pnpm exec playwright --version
- [View a trace of your tests](./trace-viewer-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/languages.mdx b/nodejs/versioned_docs/version-stable/languages.mdx
index 1ea9ef150ba..bfe63c9f2a7 100644
--- a/nodejs/versioned_docs/version-stable/languages.mdx
+++ b/nodejs/versioned_docs/version-stable/languages.mdx
@@ -35,7 +35,6 @@ Playwright for .NET comes with MSTest, NUnit, xUnit, and xUnit v3 [base classes]
* [GitHub repo](https://github.com/microsoft/playwright-dotnet)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/library.mdx b/nodejs/versioned_docs/version-stable/library.mdx
index 4c3256bb83d..d01a5464cd2 100644
--- a/nodejs/versioned_docs/version-stable/library.mdx
+++ b/nodejs/versioned_docs/version-stable/library.mdx
@@ -422,7 +422,6 @@ let page: import('playwright').Page;
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/locators.mdx b/nodejs/versioned_docs/version-stable/locators.mdx
index 70fe24fe089..f80f9209fc1 100644
--- a/nodejs/versioned_docs/version-stable/locators.mdx
+++ b/nodejs/versioned_docs/version-stable/locators.mdx
@@ -916,7 +916,6 @@ You can explicitly opt-out from strictness check by telling Playwright which ele
For less commonly used locators, look at the [other locators](./other-locators.mdx) guide.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/mock-browser.mdx b/nodejs/versioned_docs/version-stable/mock-browser.mdx
index 1ada607fd19..1b91f069e9c 100644
--- a/nodejs/versioned_docs/version-stable/mock-browser.mdx
+++ b/nodejs/versioned_docs/version-stable/mock-browser.mdx
@@ -165,7 +165,6 @@ test('update battery status (no golden)', async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/mock.mdx b/nodejs/versioned_docs/version-stable/mock.mdx
index 13548590c02..fbb2fd2e2d5 100644
--- a/nodejs/versioned_docs/version-stable/mock.mdx
+++ b/nodejs/versioned_docs/version-stable/mock.mdx
@@ -168,7 +168,6 @@ await page.routeWebSocket('wss://example.com/ws', ws => {
For more details, see [WebSocketRoute].
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/navigations.mdx b/nodejs/versioned_docs/version-stable/navigations.mdx
index ca32970e2fc..47680b551eb 100644
--- a/nodejs/versioned_docs/version-stable/navigations.mdx
+++ b/nodejs/versioned_docs/version-stable/navigations.mdx
@@ -77,7 +77,6 @@ Playwright splits the process of showing a new document in a page into **navigat
- page executes dynamically loaded scripts
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/network.mdx b/nodejs/versioned_docs/version-stable/network.mdx
index 2e380557bc2..40608a2a90f 100644
--- a/nodejs/versioned_docs/version-stable/network.mdx
+++ b/nodejs/versioned_docs/version-stable/network.mdx
@@ -333,12 +333,15 @@ page.on('websocket', ws => {
## Missing Network Events and Service Workers
Playwright's built-in [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) allow your tests to natively route requests and perform mocking and interception.
-1. If you're using Playwright's native [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [serviceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
-1. It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-1. If you're interested in not solely using Service Workers for testing and network mocking, but in routing and listening for requests made by Service Workers themselves, please see [this experimental feature](https://github.com/microsoft/playwright/issues/15684).
+
+If you're using Playwright's native [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [serviceWorkers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
+
+It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
+
+######
+If you're interested in not solely using Service Workers for testing and network mocking, but in routing and listening for requests made by Service Workers themselves, please see [this guide](./service-workers.mdx).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/other-locators.mdx b/nodejs/versioned_docs/version-stable/other-locators.mdx
index d959442fa13..bf0b94ee805 100644
--- a/nodejs/versioned_docs/version-stable/other-locators.mdx
+++ b/nodejs/versioned_docs/version-stable/other-locators.mdx
@@ -474,7 +474,6 @@ By default, chained selectors resolve to an element queried by the last selector
For example, `css=article >> text=Hello` captures the element with the text `Hello`, and `*css=article >> text=Hello` (note the `*`) captures the `article` element that contains some element with the text `Hello`.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/pages.mdx b/nodejs/versioned_docs/version-stable/pages.mdx
index 05f2cec005c..e6fe007a765 100644
--- a/nodejs/versioned_docs/version-stable/pages.mdx
+++ b/nodejs/versioned_docs/version-stable/pages.mdx
@@ -91,7 +91,6 @@ page.on('popup', async popup => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/pom.mdx b/nodejs/versioned_docs/version-stable/pom.mdx
index cc5b08d5d6d..b2e7398f23b 100644
--- a/nodejs/versioned_docs/version-stable/pom.mdx
+++ b/nodejs/versioned_docs/version-stable/pom.mdx
@@ -167,7 +167,6 @@ await expect(playwrightDev.tocList).toHaveText([
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/protractor.mdx b/nodejs/versioned_docs/version-stable/protractor.mdx
index 952d4000252..c46a73becca 100644
--- a/nodejs/versioned_docs/version-stable/protractor.mdx
+++ b/nodejs/versioned_docs/version-stable/protractor.mdx
@@ -167,7 +167,6 @@ Learn more about Playwright Test runner:
[`waitForAngular`]: https://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngular
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/puppeteer.mdx b/nodejs/versioned_docs/version-stable/puppeteer.mdx
index 8cc2fee8418..53810f6e7b7 100644
--- a/nodejs/versioned_docs/version-stable/puppeteer.mdx
+++ b/nodejs/versioned_docs/version-stable/puppeteer.mdx
@@ -172,7 +172,6 @@ Learn more about Playwright Test runner:
- [Auto-waiting](./actionability)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/release-notes.mdx b/nodejs/versioned_docs/version-stable/release-notes.mdx
index aa90f9a68ae..9d9fe7e7d32 100644
--- a/nodejs/versioned_docs/version-stable/release-notes.mdx
+++ b/nodejs/versioned_docs/version-stable/release-notes.mdx
@@ -9,6 +9,76 @@ import HTMLCard from '@site/src/components/HTMLCard';
import LiteYouTube from '@site/src/components/LiteYouTube';
+## Version 1.57
+
+### Speedboard
+
+In HTML reporter, there's a new tab we call "Speedboard":
+
+
+
+It shows you all your executed tests sorted by slowness, and can help you understand where your test suite is taking longer than expected. Take a look at yours - maybe you'll find some tests that are spending a longer time waiting than they should!
+
+### Chrome for Testing
+
+Starting with this release, Playwright switches from Chromium, to using [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) builds. Both headed and headless browsers are subject to this. Your tests should still be passing after upgrading to Playwright 1.57.
+
+We're expecting no functional changes to come from this switch. The biggest change is the new icon and title in your toolbar.
+
+
+
+If you still see an unexpected behaviour change, please [file an issue](https://github.com/microsoft/playwright/issues/new).
+
+On Arm64 Linux, Playwright continues to use Chromium.
+
+### Waiting for webserver output
+
+[testConfig.webServer](/api/class-testconfig.mdx#test-config-web-server) added a `wait` field. Pass a regular expression, and Playwright will wait until the webserver logs match it.
+
+```js
+import { defineConfig } from '@playwright/test';
+
+export default defineConfig({
+ webServer: {
+ command: 'npm run start',
+ wait: {
+ stdout: '/Listening on port (?\\d+)/'
+ },
+ },
+});
+```
+
+If you include a named capture group into the expression, then Playwright will provide the capture group contents via environment variables:
+
+```js
+import { test, expect } from '@playwright/test';
+
+test.use({ baseUrl: `http://localhost:${process.env.MY_SERVER_PORT ?? 3000}` });
+
+test('homepage', async ({ page }) => {
+ await page.goto('/');
+});
+```
+
+This is not just useful for capturing varying ports of dev servers. You can also use it to wait for readiness of a service that doesn't expose an HTTP readiness check, but instead prints a readiness message to stdout or stderr.
+
+### Breaking Change
+
+After 3 years of being deprecated, we removed `Page#accessibility` from our API. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
+
+### New APIs
+- New property [testConfig.tag](/api/class-testconfig.mdx#test-config-tag) adds a tag to all tests in this run. This is useful when using [merge-reports](./test-sharding.mdx#merging-reports-from-multiple-shards).
+- [worker.on('console')](/api/class-worker.mdx#worker-event-console) event is emitted when JavaScript within the worker calls one of console API methods, e.g. console.log or console.dir. [worker.waitForEvent()](/api/class-worker.mdx#worker-wait-for-event) can be used to wait for it.
+- [locator.description()](/api/class-locator.mdx#locator-description) returns locator description previously set with [locator.describe()](/api/class-locator.mdx#locator-describe), and `Locator.toString()` now uses the description when available.
+- New option [steps](/api/class-locator.mdx#locator-click-option-steps) in [locator.click()](/api/class-locator.mdx#locator-click) and [locator.dragTo()](/api/class-locator.mdx#locator-drag-to) that configures the number of `mousemove` events emitted while moving the mouse pointer to the target element.
+- Network requests issued by [Service Workers](./service-workers.mdx#network-events-and-routing) are now reported and can be routed through the [BrowserContext](./api/class-browsercontext.mdx), only in Chromium. You can opt out using the `PLAYWRIGHT_DISABLE_SERVICE_WORKER_NETWORK` environment variable.
+- Console messages from Service Workers are dispatched through [worker.on('console')](/api/class-worker.mdx#worker-event-console). You can opt out of this using the `PLAYWRIGHT_DISABLE_SERVICE_WORKER_CONSOLE` environment variable.
+
+### Browser Versions
+- Chromium 143.0.7499.4
+- Mozilla Firefox 142.0.1
+- WebKit 26.0
+
## Version 1.56
@@ -3057,7 +3127,6 @@ This version of Playwright was also tested against the following stable channels
- WebKit 14.1
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/running-tests.mdx b/nodejs/versioned_docs/version-stable/running-tests.mdx
index 639c3eec896..06cb7ba5596 100644
--- a/nodejs/versioned_docs/version-stable/running-tests.mdx
+++ b/nodejs/versioned_docs/version-stable/running-tests.mdx
@@ -172,7 +172,6 @@ You can filter and search for tests as well as click on each test to see the tes
- [Run your tests on CI with GitHub Actions](./ci-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/screenshots.mdx b/nodejs/versioned_docs/version-stable/screenshots.mdx
index 716cadefb18..ecfa6bc12fa 100644
--- a/nodejs/versioned_docs/version-stable/screenshots.mdx
+++ b/nodejs/versioned_docs/version-stable/screenshots.mdx
@@ -42,7 +42,6 @@ await page.locator('.header').screenshot({ path: 'screenshot.png' });
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/selenium-grid.mdx b/nodejs/versioned_docs/version-stable/selenium-grid.mdx
index 39317c3ab21..27b453330df 100644
--- a/nodejs/versioned_docs/version-stable/selenium-grid.mdx
+++ b/nodejs/versioned_docs/version-stable/selenium-grid.mdx
@@ -124,7 +124,6 @@ Internally, Playwright connects to the browser using [Chrome DevTools Protocol](
This means that Selenium 3 is supported in a best-effort manner, where Playwright tries to connect to the grid node directly. Grid nodes must be directly accessible from the machine that runs Playwright.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/service-workers-experimental-network-events.mdx b/nodejs/versioned_docs/version-stable/service-workers.mdx
similarity index 56%
rename from nodejs/versioned_docs/version-stable/service-workers-experimental-network-events.mdx
rename to nodejs/versioned_docs/version-stable/service-workers.mdx
index ab540ed68a3..a88f0bf656a 100644
--- a/nodejs/versioned_docs/version-stable/service-workers-experimental-network-events.mdx
+++ b/nodejs/versioned_docs/version-stable/service-workers.mdx
@@ -1,6 +1,6 @@
---
-id: service-workers-experimental
-title: "(Experimental) Service Worker Network Events"
+id: service-workers
+title: "Service Workers"
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
@@ -10,6 +10,10 @@ import HTMLCard from '@site/src/components/HTMLCard';
:::warning
+Service workers are only supported on Chromium-based browsers.
+:::
+
+:::note
If you're looking to do general network mocking, routing, and interception, please see the [Network Guide](./network.mdx) first. Playwright provides built-in APIs for this use case that don't require the information below. However, if you're interested in requests made by Service Workers themselves, please read below.
:::
@@ -19,17 +23,23 @@ They can act as a **network proxy** between the page and the external network to
Many sites that use Service Workers simply use them as a transparent optimization technique. While users might notice a faster experience, the app's implementation is unaware of their existence. Running the app with or without Service Workers enabled appears functionally equivalent.
-## How to Enable
+## How to Disable Service Workers
-Playwright's inspection and routing of requests made by Service Workers are **experimental** and disabled by default.
+Playwright allows to disable Service Workers during testing. This makes tests more predictable and performant. However, if your actual page uses a Service Worker, the behavior might be different.
-Set the `PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS` environment variable to `1` (or any other value) to enable the feature. Only Chrome/Chromium are currently supported.
+To disable service workers, set [testOptions.serviceWorkers](/api/class-testoptions.mdx#test-options-service-workers) to `'block'`.
-If you're using (or are interested in using this feature), please comment on [this issue](https://github.com/microsoft/playwright/issues/15684) letting us know your use case.
+```js title="playwright.config.ts"
+import { defineConfig } from '@playwright/test';
-## Service Worker Fetch
+export default defineConfig({
+ use: {
+ serviceWorkers: 'allow'
+ },
+});
+```
-### Accessing Service Workers and Waiting for Activation
+## Accessing Service Workers and Waiting for Activation
You can use [browserContext.serviceWorkers()](/api/class-browsercontext.mdx#browser-context-service-workers) to list the Service [Worker]s, or specifically watch for the Service [Worker] if you anticipate a page will trigger its [registration](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register):
@@ -39,7 +49,7 @@ await page.goto('/example-with-a-service-worker.html');
const serviceworker = await serviceWorkerPromise;
```
-[browserContext.on('serviceworker')](/api/class-browsercontext.mdx#browser-context-event-service-worker) is fired ***before*** the Service Worker's main script has been evaluated, so ***before*** calling service[worker.evaluate()](/api/class-worker.mdx#worker-evaluate) you should wait on its activation.
+[browserContext.on('serviceworker')](/api/class-browsercontext.mdx#browser-context-event-service-worker) event is fired ***before*** the Service Worker has taken control over the page, so ***before*** evaluating in the worker with [worker.evaluate()](/api/class-worker.mdx#worker-evaluate) you should wait on its activation.
There are more idiomatic methods of waiting for a Service Worker to be activated, but the following is an implementation agnostic method:
@@ -48,28 +58,22 @@ await page.evaluate(async () => {
const registration = await window.navigator.serviceWorker.getRegistration();
if (registration.active?.state === 'activated')
return;
- await new Promise(res =>
- window.navigator.serviceWorker.addEventListener('controllerchange', res),
- );
+ await new Promise(resolve => {
+ window.navigator.serviceWorker.addEventListener('controllerchange', resolve);
+ });
});
```
-### Network Events and Routing
+## Network Events and Routing
-Any network request made by the **Service Worker** will have:
-* [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) and its corresponding events ([browserContext.on('requestfinished')](/api/class-browsercontext.mdx#browser-context-event-request-finished) and [browserContext.on('response')](/api/class-browsercontext.mdx#browser-context-event-response), or [browserContext.on('requestfailed')](/api/class-browsercontext.mdx#browser-context-event-request-failed))
-* [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) will see the request
+Any network request made by the **Service Worker** is reported through the [BrowserContext] object:
+* [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request), [browserContext.on('requestfinished')](/api/class-browsercontext.mdx#browser-context-event-request-finished), [browserContext.on('response')](/api/class-browsercontext.mdx#browser-context-event-response) and [browserContext.on('requestfailed')](/api/class-browsercontext.mdx#browser-context-event-request-failed) are fired
+* [browserContext.route()](/api/class-browsercontext.mdx#browser-context-route) sees the request
* [request.serviceWorker()](/api/class-request.mdx#request-service-worker) will be set to the Service [Worker] instance, and [request.frame()](/api/class-request.mdx#request-frame) will **throw**
-* [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) will return `false`
-Additionally, any network request made by the **Page** (including its sub-[Frame]s) will have:
-* [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) and its corresponding events ([browserContext.on('requestfinished')](/api/class-browsercontext.mdx#browser-context-event-request-finished) and [browserContext.on('response')](/api/class-browsercontext.mdx#browser-context-event-response), or [browserContext.on('requestfailed')](/api/class-browsercontext.mdx#browser-context-event-request-failed))
-* [page.on('request')](/api/class-page.mdx#page-event-request) and its corresponding events ([page.on('requestfinished')](/api/class-page.mdx#page-event-request-finished) and [page.on('response')](/api/class-page.mdx#page-event-response), or [page.on('requestfailed')](/api/class-page.mdx#page-event-request-failed))
-* [page.route()](/api/class-page.mdx#page-route) and [page.route()](/api/class-page.mdx#page-route) will **not** see the request (if a Service Worker's fetch handler was registered)
-* [request.serviceWorker()](/api/class-request.mdx#request-service-worker) will be set to `null`, and [request.frame()](/api/class-request.mdx#request-frame) will return the [Frame]
-* [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) will return `true` (if a Service Worker's fetch handler was registered)
+Additionally, for any network request made by the **Page**, method [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) return `true` when the request was handled a Service Worker's fetch handler.
-Many Service Worker implementations simply execute the request from the page (possibly with some custom caching/offline logic omitted for simplicity):
+Consider a simple service worker that fetches every request made by the page:
```js title="transparent-service-worker.js"
self.addEventListener('fetch', event => {
@@ -84,16 +88,7 @@ self.addEventListener('activate', event => {
});
```
-If a page registers the above Service Worker:
-
-```html
-
-
-```
-
-On the first visit to the page via [page.goto()](/api/class-page.mdx#page-goto), the following Request/Response events would be emitted (along with the corresponding network lifecycle events):
+If `index.html` registers this service worker, and then fetches `data.json`, the following Request/Response events would be emitted (along with the corresponding network lifecycle events):
| Event | Owner | URL | Routed | [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) |
| - | - | - | - | - |
@@ -113,115 +108,19 @@ Since the example Service Worker just acts a basic transparent "proxy":
It's important to note: calling [request.frame()](/api/class-request.mdx#request-frame) or [response.frame()](/api/class-response.mdx#response-frame) will **throw** an exception, if called on a [Request]/[Response] that has a non-null [request.serviceWorker()](/api/class-request.mdx#request-service-worker).
:::
-#### Advanced Example
-
-When a Service Worker handles a page's request, the Service Worker can make 0 to n requests to the external network. The Service Worker might respond directly from a cache, generate a response in memory, rewrite the request, make two requests and then combine into 1, etc.
-
-Consider the code snippets below to understand Playwright's view into the Request/Responses and how it impacts routing in some of these cases.
-
-```js title="complex-service-worker.js"
-self.addEventListener('install', function(event) {
- event.waitUntil(
- caches.open('v1').then(function(cache) {
- // 1. Pre-fetches and caches /addressbook.json
- return cache.add('/addressbook.json');
- })
- );
-});
-
-// Opt to handle FetchEvent's from the page
-self.addEventListener('fetch', event => {
- event.respondWith(
- (async () => {
- // 1. Try to first serve directly from caches
- const response = await caches.match(event.request);
- if (response)
- return response;
-
- // 2. Re-write request for /foo to /bar
- if (event.request.url.endsWith('foo'))
- return fetch('./bar');
-
- // 3. Prevent tracker.js from being retrieved, and returns a placeholder response
- if (event.request.url.endsWith('tracker.js')) {
- return new Response('console.log("no trackers!")', {
- status: 200,
- headers: { 'Content-Type': 'text/javascript' },
- });
- }
-
- // 4. Otherwise, fallthrough, perform the fetch and respond
- return fetch(event.request);
- })()
- );
-});
-
-self.addEventListener('activate', event => {
- event.waitUntil(clients.claim());
-});
-```
-
-And a page that simply registers the Service Worker:
-
-```html
-
-
-```
-
-On the first visit to the page via [page.goto()](/api/class-page.mdx#page-goto), the following Request/Response events would be emitted:
-
-| Event | Owner | URL | Routed | [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) |
-| - | - | - | - | - |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | [Frame] | index.html | Yes | |
-| [page.on('request')](/api/class-page.mdx#page-event-request) | [Frame] | index.html | Yes | |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | Service [Worker] | complex-service-worker.js | Yes | |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | Service [Worker] | addressbook.json | Yes | |
-
-It's important to note that [`cache.add`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/add) caused the Service Worker to make a request (Service [Worker]-owned), even before `addressbook.json` was asked for in the page.
-
-Once the Service Worker is activated and handling FetchEvents, if the page makes the following requests:
-
-```js
-await page.evaluate(() => fetch('/addressbook.json'));
-await page.evaluate(() => fetch('/foo'));
-await page.evaluate(() => fetch('/tracker.js'));
-await page.evaluate(() => fetch('/fallthrough.txt'));
-```
-
-The following Request/Response events would be emitted:
-
-| Event | Owner | URL | Routed | [response.fromServiceWorker()](/api/class-response.mdx#response-from-service-worker) |
-| - | - | - | - | - |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | [Frame] | addressbook.json | | Yes |
-| [page.on('request')](/api/class-page.mdx#page-event-request) | [Frame] | addressbook.json | | Yes |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | Service [Worker] | bar | Yes | |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | [Frame] | foo | | Yes |
-| [page.on('request')](/api/class-page.mdx#page-event-request) | [Frame] | foo | | Yes |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | [Frame] | tracker.js | | Yes |
-| [page.on('request')](/api/class-page.mdx#page-event-request) | [Frame] | tracker.js | | Yes |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | Service [Worker] | fallthrough.txt | Yes | |
-| [browserContext.on('request')](/api/class-browsercontext.mdx#browser-context-event-request) | [Frame] | fallthrough.txt | | Yes |
-| [page.on('request')](/api/class-page.mdx#page-event-request) | [Frame] | fallthrough.txt | | Yes |
-
-It's important to note:
-* The page requested `/foo`, but the Service Worker requested `/bar`, so there are only [Frame]-owned events for `/foo`, but not `/bar`.
-* Likewise, the Service Worker never hit the network for `tracker.js`, so only [Frame]-owned events were emitted for that request.
-
## Routing Service Worker Requests Only
```js
await context.route('**', async route => {
if (route.request().serviceWorker()) {
// NB: calling route.request().frame() here would THROW
- return route.fulfill({
+ await route.fulfill({
contentType: 'text/plain',
status: 200,
body: 'from sw',
});
} else {
- return route.continue();
+ await route.continue();
}
});
```
@@ -231,7 +130,6 @@ await context.route('**', async route => {
Requests for updated Service Worker main script code currently cannot be routed (https://github.com/microsoft/playwright/issues/14711).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-agents.mdx b/nodejs/versioned_docs/version-stable/test-agents.mdx
index 634d9490636..cc59f03d0c0 100644
--- a/nodejs/versioned_docs/version-stable/test-agents.mdx
+++ b/nodejs/versioned_docs/version-stable/test-agents.mdx
@@ -59,7 +59,7 @@ npx playwright init-agents --loop=opencode
:::note
-VS Code v1.105 (currently on the [VS Code Insiders channel](https://code.visualstudio.com/insiders/)) is needed for the agentic experience in VS Code. It will become stable shortly, we are a bit ahead of the curve with this functionality!
+VS Code v1.105 (released October 9, 2025) is needed for the agentic experience to function properly in VS Code.
:::
Once the agents have been generated, you can use your AI tool of choice to command these agents to build Playwright Tests.
@@ -254,7 +254,6 @@ Generated Playwright tests, aligned one-to-one with specs wherever feasible.
Seed tests provide a ready-to-use `page` context to bootstrap execution.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-annotations.mdx b/nodejs/versioned_docs/version-stable/test-annotations.mdx
index 7f5f8ad2e23..ce3c103295c 100644
--- a/nodejs/versioned_docs/version-stable/test-annotations.mdx
+++ b/nodejs/versioned_docs/version-stable/test-annotations.mdx
@@ -318,7 +318,6 @@ test('example test', async ({ page, browser }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-assertions.mdx b/nodejs/versioned_docs/version-stable/test-assertions.mdx
index efd4b1b3150..631f1f34bb8 100644
--- a/nodejs/versioned_docs/version-stable/test-assertions.mdx
+++ b/nodejs/versioned_docs/version-stable/test-assertions.mdx
@@ -92,13 +92,21 @@ Prefer [auto-retrying](#auto-retrying-assertions) assertions whenever possible.
| [expect(value).toMatchObject()](/api/class-genericassertions.mdx#generic-assertions-to-match-object) | Object contains specified properties |
| [expect(value).toStrictEqual()](/api/class-genericassertions.mdx#generic-assertions-to-strict-equal) | Value is similar, including property types |
| [expect(value).toThrow()](/api/class-genericassertions.mdx#generic-assertions-to-throw) | Function throws an error |
-| [expect(value).any()](/api/class-genericassertions.mdx#generic-assertions-any) | Matches any instance of a class/primitive |
-| [expect(value).anything()](/api/class-genericassertions.mdx#generic-assertions-anything) | Matches anything |
-| [expect(value).arrayContaining()](/api/class-genericassertions.mdx#generic-assertions-array-containing) | Array contains specific elements |
-| [expect(value).closeTo()](/api/class-genericassertions.mdx#generic-assertions-close-to) | Number is approximately equal |
-| [expect(value).objectContaining()](/api/class-genericassertions.mdx#generic-assertions-object-containing) | Object contains specific properties |
-| [expect(value).stringContaining()](/api/class-genericassertions.mdx#generic-assertions-string-containing) | String contains a substring |
-| [expect(value).stringMatching()](/api/class-genericassertions.mdx#generic-assertions-string-matching) | String matches a regular expression |
+
+## Asymmetric matchers
+
+These expressions can be nested in other assertions to allow more relaxed matching against a given condition.
+
+| Matcher | Description |
+| :- | :- |
+| [expect.any()](./api/class-genericassertions.mdx#generic-assertions-any) | Matches any instance of a class/primitive |
+| [expect.anything()](./api/class-genericassertions.mdx#generic-assertions-anything) | Matches anything |
+| [expect.arrayContaining()](./api/class-genericassertions.mdx#generic-assertions-array-containing) | Array contains specific elements |
+| [expect.arrayOf()](./api/class-genericassertions.mdx#generic-assertions-array-of) | Array contains elements of specific type |
+| [expect.closeTo()](./api/class-genericassertions.mdx#generic-assertions-close-to) | Number is approximately equal |
+| [expect.objectContaining()](./api/class-genericassertions.mdx#generic-assertions-object-containing) | Object contains specific properties |
+| [expect.stringContaining()](./api/class-genericassertions.mdx#generic-assertions-string-containing) | String contains a substring |
+| [expect.stringMatching()](./api/class-genericassertions.mdx#generic-assertions-string-matching) | String matches a regular expression |
## Negating matchers
@@ -352,7 +360,6 @@ test('passes', async ({ database }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-cli.mdx b/nodejs/versioned_docs/version-stable/test-cli.mdx
index 6a516465409..e9ba14f9ea7 100644
--- a/nodejs/versioned_docs/version-stable/test-cli.mdx
+++ b/nodejs/versioned_docs/version-stable/test-cli.mdx
@@ -257,12 +257,15 @@ Analyze and view test traces for debugging. [Read more about Trace Viewer](./tra
#### Syntax
```bash
-npx playwright show-trace [options]
+npx playwright show-trace [options] [trace]
```
#### Examples
```bash
+# Open trace viewer without a specific trace (can load traces via UI)
+npx playwright show-trace
+
# View a trace file
npx playwright show-trace trace.zip
@@ -315,7 +318,6 @@ npx playwright clear-cache
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-components.mdx b/nodejs/versioned_docs/version-stable/test-components.mdx
index da6683274f1..95af452210d 100644
--- a/nodejs/versioned_docs/version-stable/test-components.mdx
+++ b/nodejs/versioned_docs/version-stable/test-components.mdx
@@ -858,7 +858,6 @@ test('override initialState ', async ({ mount }) => {
Accessing a component's internal methods or its instance within test code is neither recommended nor supported. Instead, focus on observing and interacting with the component from a user's perspective, typically by clicking or verifying if something is visible on the page. Tests become less fragile and more valuable when they avoid interacting with internal implementation details, such as the component instance or its methods. Keep in mind that if a test fails when run from a user’s perspective, it likely means the automated test has uncovered a genuine bug in your code.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-configuration.mdx b/nodejs/versioned_docs/version-stable/test-configuration.mdx
index f40eb662a7b..597ebdbbd8f 100644
--- a/nodejs/versioned_docs/version-stable/test-configuration.mdx
+++ b/nodejs/versioned_docs/version-stable/test-configuration.mdx
@@ -154,7 +154,6 @@ export default defineConfig({
| [expect(value).toMatchSnapshot()](/api/class-snapshotassertions.mdx#snapshot-assertions-to-match-snapshot-1)| Configuration for the `expect(locator).toMatchSnapshot()` method.|
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-fixtures.mdx b/nodejs/versioned_docs/version-stable/test-fixtures.mdx
index cf7710347a1..a53c6f0efc5 100644
--- a/nodejs/versioned_docs/version-stable/test-fixtures.mdx
+++ b/nodejs/versioned_docs/version-stable/test-fixtures.mdx
@@ -853,7 +853,6 @@ test('basic', async ({ }) => {
Note that the fixtures will still run once per [worker process](./test-parallel.mdx#worker-processes), but you don't need to redeclare them in every file.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-global-setup-teardown.mdx b/nodejs/versioned_docs/version-stable/test-global-setup-teardown.mdx
index 693b31933d8..8414a7a96a4 100644
--- a/nodejs/versioned_docs/version-stable/test-global-setup-teardown.mdx
+++ b/nodejs/versioned_docs/version-stable/test-global-setup-teardown.mdx
@@ -275,7 +275,6 @@ export default globalSetup;
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-parallel.mdx b/nodejs/versioned_docs/version-stable/test-parallel.mdx
index c766c0bb3e3..cef7dc04e77 100644
--- a/nodejs/versioned_docs/version-stable/test-parallel.mdx
+++ b/nodejs/versioned_docs/version-stable/test-parallel.mdx
@@ -283,7 +283,6 @@ Do not define your tests directly in a helper file. This could lead to unexpecte
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-parameterize.mdx b/nodejs/versioned_docs/version-stable/test-parameterize.mdx
index 69eca6dcb0e..0a164ce8a7a 100644
--- a/nodejs/versioned_docs/version-stable/test-parameterize.mdx
+++ b/nodejs/versioned_docs/version-stable/test-parameterize.mdx
@@ -420,7 +420,6 @@ for (const record of records) {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-projects.mdx b/nodejs/versioned_docs/version-stable/test-projects.mdx
index 1f1456ab125..0a20022243b 100644
--- a/nodejs/versioned_docs/version-stable/test-projects.mdx
+++ b/nodejs/versioned_docs/version-stable/test-projects.mdx
@@ -227,7 +227,6 @@ You can pass `--no-deps` command line option to ignore all dependencies and tear
Projects can be also used to parametrize tests with your custom configuration - take a look at [this separate guide](./test-parameterize.mdx#parameterized-projects).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-reporters.mdx b/nodejs/versioned_docs/version-stable/test-reporters.mdx
index 52a074f90b8..703d330d8dd 100644
--- a/nodejs/versioned_docs/version-stable/test-reporters.mdx
+++ b/nodejs/versioned_docs/version-stable/test-reporters.mdx
@@ -220,7 +220,7 @@ export default defineConfig({
});
```
-If you are uploading attachments from data folder to other location, you can use `attachmentsBaseURL` option to let html report where to look for them.
+If you are uploading attachments from a data folder to another location, you can use `attachmentsBaseURL` option to let html report know where to look for them.
```js title="playwright.config.ts"
import { defineConfig } from '@playwright/test';
@@ -263,16 +263,43 @@ Blob reports contain all the details about the test run and can be used later to
npx playwright test --reporter=blob
```
-By default, the report is written into the `blob-report` directory in the package.json directory or current working directory (if no package.json is found). The report file name looks like `report-.zip` or `report--.zip` when [sharding](./test-sharding.mdx) is used. The hash is an optional value computed from `--grep`, `--grepInverted`, `--project` and file filters passed as command line arguments. The hash guarantees that running Playwright with different command line options will produce different but stable between runs report names. The output file name can be overridden in the configuration file or pass as `'PLAYWRIGHT_BLOB_OUTPUT_FILE'` environment variable.
+By default, the report is written into the `blob-report` directory in the package.json directory or current working directory (if no package.json is found).
+
+The report file name looks like `report-.zip` or `report--.zip` when [sharding](./test-sharding.mdx) is used. The hash is an optional value computed from `--grep`, `--grepInverted`, `--project`, [testConfig.tag](/api/class-testconfig.mdx#test-config-tag) and file filters passed as command line arguments. The hash guarantees that running Playwright with different command line options will produce different but stable between runs report names. The output file name can be overridden in the configuration file or passed as `'PLAYWRIGHT_BLOB_OUTPUT_FILE'` environment variable.
+
+
+
+
+
+When using blob report to merge multiple shards, you don't have to pass any options.
```js title="playwright.config.ts"
import { defineConfig } from '@playwright/test';
export default defineConfig({
- reporter: [['blob', { outputFile: `./blob-report/report-${os.platform()}.zip` }]],
+ reporter: 'blob',
});
```
+
+
+
+
+When running tests in different environments, you might want to use [testConfig.tag](/api/class-testconfig.mdx#test-config-tag) to add a global tag corresponding to the environment. This tag will bring clarity to the merged report, and it will be used to produce a unique blob report name.
+
+```js title="playwright.config.ts"
+import { defineConfig } from '@playwright/test';
+
+export default defineConfig({
+ reporter: 'blob',
+ tag: process.env.CI_ENVIRONMENT_NAME, // for example "@APIv2" or "@linux"
+});
+```
+
+
+
+
+
Blob report supports following configuration options and environment variables:
| Environment Variable Name | Reporter Config Option| Description | Default
@@ -471,7 +498,6 @@ Here's a short list of open source reporter implementations that you can take a
* [Monocart](https://github.com/cenfun/monocart-reporter)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-retries.mdx b/nodejs/versioned_docs/version-stable/test-retries.mdx
index 72f33d8b90a..92f13d63369 100644
--- a/nodejs/versioned_docs/version-stable/test-retries.mdx
+++ b/nodejs/versioned_docs/version-stable/test-retries.mdx
@@ -243,7 +243,6 @@ test('runs second', async () => {
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-sharding.mdx b/nodejs/versioned_docs/version-stable/test-sharding.mdx
index 259822b1507..cfc3e82b1e6 100644
--- a/nodejs/versioned_docs/version-stable/test-sharding.mdx
+++ b/nodejs/versioned_docs/version-stable/test-sharding.mdx
@@ -59,7 +59,7 @@ export default defineConfig({
});
```
-Blob report contains information about all the tests that were run and their results as well as all test attachments such as traces and screenshot diffs. Blob reports can be merged and converted to any other Playwright report. By default, blob report will be generated into `blob-report` directory.
+Blob report contains information about all the tests that were run and their results as well as all test attachments such as traces and screenshot diffs. Blob reports can be merged and converted to any other Playwright report. By default, blob report will be generated into `blob-report` directory. You can learn about [blob report options here](./test-reporters.mdx#blob-reporter).
To merge reports from multiple shards, put the blob report files into a single directory, for example `all-blob-reports`. Blob report names contain shard number, so they will not clash.
@@ -159,6 +159,21 @@ You can now see the reports have been merged and a combined HTML report is avail
+## Merging reports from multiple environments
+
+If you want to run the same tests in multiple environments, as opposed to shard your tests onto multiple machines, you need to differentiate these enviroments.
+
+In this case, it is useful to specify the [testConfig.tag](/api/class-testconfig.mdx#test-config-tag) property, to tag all tests with the environment name. This tag will be automatically picked up by the blob report and later on by the merge tool.
+
+```js title="playwright.config.ts"
+import { defineConfig } from '@playwright/test';
+
+export default defineConfig({
+ reporter: process.env.CI ? 'blob' : 'html',
+ tag: process.env.CI_ENVIRONMENT_NAME, // for example "@APIv2"
+});
+```
+
## Merge-reports CLI
`npx playwright merge-reports path/to/blob-reports-dir` reads all blob reports from the passed directory and merges them into a single report.
@@ -195,7 +210,6 @@ Supported options:
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-snapshots.mdx b/nodejs/versioned_docs/version-stable/test-snapshots.mdx
index 1fbe962cc2c..f0bfe058573 100644
--- a/nodejs/versioned_docs/version-stable/test-snapshots.mdx
+++ b/nodejs/versioned_docs/version-stable/test-snapshots.mdx
@@ -140,7 +140,6 @@ test('example test', async ({ page }) => {
Snapshots are stored next to the test file, in a separate directory. For example, `my.spec.ts` file will produce and store snapshots in the `my.spec.ts-snapshots` directory. You should commit this directory to your version control (e.g. `git`), and review any changes to it.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-timeouts.mdx b/nodejs/versioned_docs/version-stable/test-timeouts.mdx
index 8489d564ed3..91912dba981 100644
--- a/nodejs/versioned_docs/version-stable/test-timeouts.mdx
+++ b/nodejs/versioned_docs/version-stable/test-timeouts.mdx
@@ -211,7 +211,6 @@ test('example test', async ({ slowFixture }) => {
API reference: [test.extend()](/api/class-test.mdx#test-extend).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-typescript.mdx b/nodejs/versioned_docs/version-stable/test-typescript.mdx
index 16aa54788e9..5f40834e345 100644
--- a/nodejs/versioned_docs/version-stable/test-typescript.mdx
+++ b/nodejs/versioned_docs/version-stable/test-typescript.mdx
@@ -140,7 +140,6 @@ The `pretest` script runs typescript on the tests. `test` will run the tests tha
Then `npm run test` will build the tests and run them.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-ui-mode.mdx b/nodejs/versioned_docs/version-stable/test-ui-mode.mdx
index 1f08808162a..2cc40063118 100644
--- a/nodejs/versioned_docs/version-stable/test-ui-mode.mdx
+++ b/nodejs/versioned_docs/version-stable/test-ui-mode.mdx
@@ -131,7 +131,6 @@ Be aware that when specifying the `--ui-host=0.0.0.0` flag, UI Mode with your tr
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-use-options.mdx b/nodejs/versioned_docs/version-stable/test-use-options.mdx
index daef30f9c29..a0e452978ab 100644
--- a/nodejs/versioned_docs/version-stable/test-use-options.mdx
+++ b/nodejs/versioned_docs/version-stable/test-use-options.mdx
@@ -348,7 +348,6 @@ test('no base url', async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/test-webserver.mdx b/nodejs/versioned_docs/version-stable/test-webserver.mdx
index 316db09863b..c0985ec1d72 100644
--- a/nodejs/versioned_docs/version-stable/test-webserver.mdx
+++ b/nodejs/versioned_docs/version-stable/test-webserver.mdx
@@ -8,11 +8,11 @@ import HTMLCard from '@site/src/components/HTMLCard';
## Introduction
-Playwright comes with a `webserver` option in the config file which gives you the ability to launch a local dev server before running your tests. This is ideal for when writing your tests during development and when you don't have a staging or production url to test against.
+Playwright comes with a `webServer` option in the config file which gives you the ability to launch a local dev server before running your tests. This is ideal for when writing your tests during development and when you don't have a staging or production url to test against.
## Configuring a web server
-Use the `webserver` property in your Playwright config to launch a development web server during the tests.
+Use the `webServer` property in your Playwright config to launch a development web server during the tests.
```js title="playwright.config.ts"
import { defineConfig } from '@playwright/test';
@@ -38,11 +38,13 @@ export default defineConfig({
| `gracefulShutdown` | How to shut down the process. If unspecified, the process group is forcefully `SIGKILL`ed. If set to `{ signal: 'SIGTERM', timeout: 500 }`, the process group is sent a `SIGTERM` signal, followed by `SIGKILL` if it doesn't exit within 500ms. You can also use `SIGINT` as the signal instead. A `0` timeout means no `SIGKILL` will be sent. Windows doesn't support `SIGTERM` and `SIGINT` signals, so this option is ignored on Windows. Note that shutting down a Docker container requires `SIGTERM`. |
| `ignoreHTTPSErrors` | Whether to ignore HTTPS errors when fetching the `url`. Defaults to `false`. |
| `name` | Specifies a custom name for the web server. This name will be prefixed to log messages. Defaults to `[WebServer]`. |
-| `reuseExistingServer`| If `true`, it will re-use an existing server on the url when available. If no server is running on that url, it will run the command to start a new server. If `false`, it will throw if an existing process is listening on the url. To see the stdout, you can set the `DEBUG=pw:webserver` environment variable. |
+| `port` | **Deprecated**. User `url` instead. The port that your http server is expected to appear on. It does wait until it accepts connections. Either `port` or `url` should be specified. |
+| `reuseExistingServer`| If `true`, it will re-use an existing server on the `port` or `url` when available. If no server is running on that `port` or `url`, it will run the command to start a new server. If `false`, it will throw if an existing process is listening on the `port` or `url`. This should be commonly set to `!process.env.CI` to allow the local dev server when running tests locally. |
| `stderr` | Whether to pipe the stderr of the command to the process stderr or ignore it. Defaults to `"pipe"`. |
| `stdout` | If `"pipe"`, it will pipe the stdout of the command to the process stdout. If `"ignore"`, it will ignore the stdout of the command. Default to `"ignore"`. |
| `timeout` | How long to wait for the process to start up and be available in milliseconds. Defaults to 60000. |
-| `url`| URL of your http server that is expected to return a 2xx, 3xx, 400, 401, 402, or 403 status code when the server is ready to accept connections. |
+| `url`| URL of your http server that is expected to return a 2xx, 3xx, 400, 401, 402, or 403 status code when the server is ready to accept connections. Either `port` or `url` should be specified. |
+| `wait` | Consider command started only when given output has been produced. Takes an object with optional `stdout` and/or `stderr` regular expressions. Named capture groups in the regex are stored in the environment, for example `/Listening on port (?\\d+)/` will store the port number in `process.env['MY_SERVER_PORT']`. |
## Adding a server timeout
@@ -130,7 +132,6 @@ export default defineConfig({
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/testing-library.mdx b/nodejs/versioned_docs/version-stable/testing-library.mdx
index ce3104e4065..b35111e9fbb 100644
--- a/nodejs/versioned_docs/version-stable/testing-library.mdx
+++ b/nodejs/versioned_docs/version-stable/testing-library.mdx
@@ -121,7 +121,7 @@ You can create a locator inside another locator with [locator.locator()](/api/cl
```js
// Testing Library
-const messages = document.getElementById('messages');
+const messages = screen.getByTestId('messages');
const helloMessage = within(messages).getByText('hello');
// Playwright
@@ -155,7 +155,6 @@ Learn more about Playwright Test runner:
- [Auto-waiting](./actionability)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/touch-events.mdx b/nodejs/versioned_docs/version-stable/touch-events.mdx
index 512594c7863..c7501a94825 100644
--- a/nodejs/versioned_docs/version-stable/touch-events.mdx
+++ b/nodejs/versioned_docs/version-stable/touch-events.mdx
@@ -143,7 +143,6 @@ test(`pinch in gesture to zoom out the map`, async ({ page }) => {
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/trace-viewer-intro.mdx b/nodejs/versioned_docs/version-stable/trace-viewer-intro.mdx
index c95ad86c356..9b5b1315321 100644
--- a/nodejs/versioned_docs/version-stable/trace-viewer-intro.mdx
+++ b/nodejs/versioned_docs/version-stable/trace-viewer-intro.mdx
@@ -75,7 +75,6 @@ To learn more about traces, check out our detailed guide on [Trace Viewer](/trac
- [Learn more about Trace Viewer](/trace-viewer.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/trace-viewer.mdx b/nodejs/versioned_docs/version-stable/trace-viewer.mdx
index ec1c1203ce3..d37b31739ad 100644
--- a/nodejs/versioned_docs/version-stable/trace-viewer.mdx
+++ b/nodejs/versioned_docs/version-stable/trace-viewer.mdx
@@ -25,7 +25,7 @@ npx playwright show-trace path/to/trace.zip
### Using [trace.playwright.dev](https://trace.playwright.dev)
-[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload trace files using drag and drop or via the `Select file(s)` button.
+[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload a trace file using drag and drop or via the `Select file` button.
Trace Viewer loads the trace entirely in your browser and does not transmit any data externally.
@@ -42,7 +42,7 @@ npx playwright show-trace https://example.com/trace.zip
When using [trace.playwright.dev](https://trace.playwright.dev), you can also pass the URL of your uploaded trace at some accessible storage (e.g. inside your CI) as a query parameter. CORS (Cross-Origin Resource Sharing) rules might apply.
```txt
-https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/fa874b0d59cdedec675521c21124e93161d66533.zip
+https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/e6099cadf79aa753d5500aa9508f9d1dbd87b5ee.zip
```
## Recording a trace
@@ -212,7 +212,6 @@ The "Attachments" tab allows you to explore attachments. If you're doing [visual

-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/videos.mdx b/nodejs/versioned_docs/version-stable/videos.mdx
index 6c9aac0f9eb..dfe44e93982 100644
--- a/nodejs/versioned_docs/version-stable/videos.mdx
+++ b/nodejs/versioned_docs/version-stable/videos.mdx
@@ -103,7 +103,6 @@ Note that the video is only available after the page or browser context is close
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/webview2.mdx b/nodejs/versioned_docs/version-stable/webview2.mdx
index 88f8b4d7f47..9cb66f8aacf 100644
--- a/nodejs/versioned_docs/version-stable/webview2.mdx
+++ b/nodejs/versioned_docs/version-stable/webview2.mdx
@@ -118,7 +118,6 @@ Inside your webview2 control, you can just right-click to open the context menu
For debugging tests, see the Playwright [Debugging guide](./debug).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_docs/version-stable/writing-tests.mdx b/nodejs/versioned_docs/version-stable/writing-tests.mdx
index a4d17d6a167..a6f85bef237 100644
--- a/nodejs/versioned_docs/version-stable/writing-tests.mdx
+++ b/nodejs/versioned_docs/version-stable/writing-tests.mdx
@@ -171,7 +171,6 @@ test.describe('navigation', () => {
- [Run tests on CI with GitHub Actions](./ci-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
[AndroidInput]: /api/class-androidinput.mdx "AndroidInput"
diff --git a/nodejs/versioned_sidebars/version-stable-sidebars.json b/nodejs/versioned_sidebars/version-stable-sidebars.json
index 6d92a6ad57c..67b6c67d4e5 100644
--- a/nodejs/versioned_sidebars/version-stable-sidebars.json
+++ b/nodejs/versioned_sidebars/version-stable-sidebars.json
@@ -349,10 +349,6 @@
"type": "doc",
"id": "api/class-apiresponse"
},
- {
- "type": "doc",
- "id": "api/class-accessibility"
- },
{
"type": "doc",
"id": "api/class-browser"
diff --git a/python/versioned_docs/images/cft-logo-change.png b/python/versioned_docs/images/cft-logo-change.png
new file mode 100644
index 00000000000..89c5695e29f
Binary files /dev/null and b/python/versioned_docs/images/cft-logo-change.png differ
diff --git a/python/versioned_docs/images/speedboard.png b/python/versioned_docs/images/speedboard.png
new file mode 100644
index 00000000000..e6fa26ab611
Binary files /dev/null and b/python/versioned_docs/images/speedboard.png differ
diff --git a/python/versioned_docs/version-stable/actionability.mdx b/python/versioned_docs/version-stable/actionability.mdx
index fb99122e471..0e579fcbbf5 100644
--- a/python/versioned_docs/version-stable/actionability.mdx
+++ b/python/versioned_docs/version-stable/actionability.mdx
@@ -123,7 +123,6 @@ For example, consider a scenario where Playwright will click `Sign Up` button re
[Receives Events]: #receives-events "Receives Events"
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api-testing.mdx b/python/versioned_docs/version-stable/api-testing.mdx
index 7e85be1d45b..6f78fbbbf40 100644
--- a/python/versioned_docs/version-stable/api-testing.mdx
+++ b/python/versioned_docs/version-stable/api-testing.mdx
@@ -283,7 +283,6 @@ context = browser.new_context(storage_state=state)
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-accessibility.mdx b/python/versioned_docs/version-stable/api/class-accessibility.mdx
deleted file mode 100644
index 99816e181ec..00000000000
--- a/python/versioned_docs/version-stable/api/class-accessibility.mdx
+++ /dev/null
@@ -1,286 +0,0 @@
----
-id: class-accessibility
-title: "Accessibility"
----
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import HTMLCard from '@site/src/components/HTMLCard';
-
-
-:::warning[Deprecated]
-This class is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-:::
-
-
-The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access).
-
-Accessibility is a very platform-specific thing. On different platforms, there are different screen readers that might have wildly different output.
-
-Rendering engines of Chromium, Firefox and WebKit have a concept of "accessibility tree", which is then translated into different platform-specific APIs. Accessibility namespace gives access to this Accessibility Tree.
-
-Most of the accessibility tree gets filtered out when converting from internal browser AX Tree to Platform-specific AX-Tree or by assistive technologies themselves. By default, Playwright tries to approximate this filtering, exposing only the "interesting" nodes of the tree.
-
-
----
-
-## Deprecated
-
-### snapshot {#accessibility-snapshot}
-
-Added before v1.9accessibility.snapshot
-
-:::warning Deprecated
-
-This method is deprecated. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-Captures the current state of the accessibility tree. The returned object represents the root accessible node of the page.
-
-:::note
-
-The Chromium accessibility tree contains nodes that go unused on most platforms and by most screen readers. Playwright will discard them as well for an easier to process tree, unless [interesting_only](/api/class-accessibility.mdx#accessibility-snapshot-option-interesting-only) is set to `false`.
-:::
-
-**Usage**
-
-An example of dumping the entire accessibility tree:
-
-
-
-
-```py
-snapshot = page.accessibility.snapshot()
-print(snapshot)
-```
-
-
-
-
-```py
-snapshot = await page.accessibility.snapshot()
-print(snapshot)
-```
-
-
-
-
-An example of logging the focused node's name:
-
-
-
-
-```py
-def find_focused_node(node):
- if node.get("focused"):
- return node
- for child in (node.get("children") or []):
- found_node = find_focused_node(child)
- if found_node:
- return found_node
- return None
-
-snapshot = page.accessibility.snapshot()
-node = find_focused_node(snapshot)
-if node:
- print(node["name"])
-```
-
-
-
-
-```py
-def find_focused_node(node):
- if node.get("focused"):
- return node
- for child in (node.get("children") or []):
- found_node = find_focused_node(child)
- if found_node:
- return found_node
- return None
-
-snapshot = await page.accessibility.snapshot()
-node = find_focused_node(snapshot)
-if node:
- print(node["name"])
-```
-
-
-
-
-**Arguments**
-- `interesting_only` [bool] *(optional)*#
-
- Prune uninteresting nodes from the tree. Defaults to `true`.
-- `root` [ElementHandle] *(optional)*#
-
- The root DOM element for the snapshot. Defaults to the whole page.
-
-**Returns**
-- [NoneType] | [Dict]#
- - `role` [str]
-
- The [role](https://www.w3.org/TR/wai-aria/#usage).
- - `name` [str]
-
- A human readable name for the node.
- - `value` [str] | [float]
-
- The current value of the node, if applicable.
- - `description` [str]
-
- An additional human readable description of the node, if applicable.
- - `keyshortcuts` [str]
-
- Keyboard shortcuts associated with this node, if applicable.
- - `roledescription` [str]
-
- A human readable alternative to the role, if applicable.
- - `valuetext` [str]
-
- A description of the current value, if applicable.
- - `disabled` [bool]
-
- Whether the node is disabled, if applicable.
- - `expanded` [bool]
-
- Whether the node is expanded or collapsed, if applicable.
- - `focused` [bool]
-
- Whether the node is focused, if applicable.
- - `modal` [bool]
-
- Whether the node is [modal](https://en.wikipedia.org/wiki/Modal_window), if applicable.
- - `multiline` [bool]
-
- Whether the node text input supports multiline, if applicable.
- - `multiselectable` [bool]
-
- Whether more than one child can be selected, if applicable.
- - `readonly` [bool]
-
- Whether the node is read only, if applicable.
- - `required` [bool]
-
- Whether the node is required, if applicable.
- - `selected` [bool]
-
- Whether the node is selected in its parent node, if applicable.
- - `checked` [bool] | "mixed"
-
- Whether the checkbox is checked, or "mixed", if applicable.
- - `pressed` [bool] | "mixed"
-
- Whether the toggle button is checked, or "mixed", if applicable.
- - `level` [int]
-
- The level of a heading, if applicable.
- - `valuemin` [float]
-
- The minimum value in a node, if applicable.
- - `valuemax` [float]
-
- The maximum value in a node, if applicable.
- - `autocomplete` [str]
-
- What kind of autocomplete is supported by a control, if applicable.
- - `haspopup` [str]
-
- What kind of popup is currently being shown for a node, if applicable.
- - `invalid` [str]
-
- Whether and in what way this node's value is invalid, if applicable.
- - `orientation` [str]
-
- Whether the node is oriented horizontally or vertically, if applicable.
- - `children` [List]\[[Dict]\]
-
- Child nodes, if any, if applicable.
-
-
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
-[APIRequest]: /api/class-apirequest.mdx "APIRequest"
-[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
-[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
-[APIResponseAssertions]: /api/class-apiresponseassertions.mdx "APIResponseAssertions"
-[Browser]: /api/class-browser.mdx "Browser"
-[BrowserContext]: /api/class-browsercontext.mdx "BrowserContext"
-[BrowserType]: /api/class-browsertype.mdx "BrowserType"
-[CDPSession]: /api/class-cdpsession.mdx "CDPSession"
-[Clock]: /api/class-clock.mdx "Clock"
-[ConsoleMessage]: /api/class-consolemessage.mdx "ConsoleMessage"
-[Dialog]: /api/class-dialog.mdx "Dialog"
-[Download]: /api/class-download.mdx "Download"
-[ElementHandle]: /api/class-elementhandle.mdx "ElementHandle"
-[Error]: /api/class-error.mdx "Error"
-[FileChooser]: /api/class-filechooser.mdx "FileChooser"
-[Frame]: /api/class-frame.mdx "Frame"
-[FrameLocator]: /api/class-framelocator.mdx "FrameLocator"
-[JSHandle]: /api/class-jshandle.mdx "JSHandle"
-[Keyboard]: /api/class-keyboard.mdx "Keyboard"
-[Locator]: /api/class-locator.mdx "Locator"
-[LocatorAssertions]: /api/class-locatorassertions.mdx "LocatorAssertions"
-[Mouse]: /api/class-mouse.mdx "Mouse"
-[Page]: /api/class-page.mdx "Page"
-[PageAssertions]: /api/class-pageassertions.mdx "PageAssertions"
-[Playwright]: /api/class-playwright.mdx "Playwright"
-[Request]: /api/class-request.mdx "Request"
-[Response]: /api/class-response.mdx "Response"
-[Route]: /api/class-route.mdx "Route"
-[Selectors]: /api/class-selectors.mdx "Selectors"
-[TimeoutError]: /api/class-timeouterror.mdx "TimeoutError"
-[Touchscreen]: /api/class-touchscreen.mdx "Touchscreen"
-[Tracing]: /api/class-tracing.mdx "Tracing"
-[Video]: /api/class-video.mdx "Video"
-[WebError]: /api/class-weberror.mdx "WebError"
-[WebSocket]: /api/class-websocket.mdx "WebSocket"
-[WebSocketRoute]: /api/class-websocketroute.mdx "WebSocketRoute"
-[Worker]: /api/class-worker.mdx "Worker"
-[Element]: https://developer.mozilla.org/en-US/docs/Web/API/element "Element"
-[EvaluationArgument]: /evaluating.mdx#evaluation-argument "EvaluationArgument"
-[Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"
-[iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols "Iterator"
-[origin]: https://developer.mozilla.org/en-US/docs/Glossary/Origin "Origin"
-[selector]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors "selector"
-[Serializable]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable"
-[UIEvent.detail]: https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail "UIEvent.detail"
-[UnixTime]: https://en.wikipedia.org/wiki/Unix_time "Unix Time"
-[xpath]: https://developer.mozilla.org/en-US/docs/Web/XPath "xpath"
-
-[Any]: https://docs.python.org/3/library/typing.html#typing.Any "Any"
-[bool]: https://docs.python.org/3/library/stdtypes.html "bool"
-[bytes]: https://docs.python.org/3/library/stdtypes.html#bytes "bytes"
-[Callable]: https://docs.python.org/3/library/typing.html#typing.Callable "Callable"
-[EventContextManager]: https://docs.python.org/3/reference/datamodel.html#context-managers "Event context manager"
-[EventEmitter]: https://pyee.readthedocs.io/en/latest/#pyee.BaseEventEmitter "EventEmitter"
-[Exception]: https://docs.python.org/3/library/exceptions.html#Exception "Exception"
-[Dict]: https://docs.python.org/3/library/typing.html#typing.Dict "Dict"
-[float]: https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex "float"
-[int]: https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex "int"
-[List]: https://docs.python.org/3/library/typing.html#typing.List "List"
-[NoneType]: https://docs.python.org/3/library/constants.html#None "None"
-[Pattern]: https://docs.python.org/3/library/re.html "Pattern"
-[URL]: https://en.wikipedia.org/wiki/URL "URL"
-[pathlib.Path]: https://realpython.com/python-pathlib/ "pathlib.Path"
-[str]: https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str "str"
-[Union]: https://docs.python.org/3/library/typing.html#typing.Union "Union"
-[datetime]: https://docs.python.org/3/library/datetime.html#datetime.datetime "datetime"
-
-[all available image tags]: https://mcr.microsoft.com/en-us/product/playwright/python/about "all available image tags"
-[Microsoft Artifact Registry]: https://mcr.microsoft.com/en-us/product/playwright/python/about "Microsoft Artifact Registry"
-[Dockerfile.noble]: https://github.com/microsoft/playwright-python/blob/main/utils/docker/Dockerfile.noble "Dockerfile.noble"
diff --git a/python/versioned_docs/version-stable/api/class-apirequest.mdx b/python/versioned_docs/version-stable/api/class-apirequest.mdx
index bc8ff32e1a1..1101f076ebf 100644
--- a/python/versioned_docs/version-stable/api/class-apirequest.mdx
+++ b/python/versioned_docs/version-stable/api/class-apirequest.mdx
@@ -167,7 +167,6 @@ api_request.new_context(**kwargs)
- [APIRequestContext]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-apirequestcontext.mdx b/python/versioned_docs/version-stable/api/class-apirequestcontext.mdx
index ae545e9920b..d23e03e7721 100644
--- a/python/versioned_docs/version-stable/api/class-apirequestcontext.mdx
+++ b/python/versioned_docs/version-stable/api/class-apirequestcontext.mdx
@@ -715,7 +715,6 @@ api_request_context.storage_state(**kwargs)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-apiresponse.mdx b/python/versioned_docs/version-stable/api/class-apiresponse.mdx
index 55e1dc1f8e3..24c48159966 100644
--- a/python/versioned_docs/version-stable/api/class-apiresponse.mdx
+++ b/python/versioned_docs/version-stable/api/class-apiresponse.mdx
@@ -244,7 +244,6 @@ api_response.url
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-apiresponseassertions.mdx b/python/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
index ee3282a9682..731fe70cc76 100644
--- a/python/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
+++ b/python/versioned_docs/version-stable/api/class-apiresponseassertions.mdx
@@ -108,7 +108,6 @@ await expect(response).to_be_ok()
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-browser.mdx b/python/versioned_docs/version-stable/api/class-browser.mdx
index 7eaa1495251..07cc184baf6 100644
--- a/python/versioned_docs/version-stable/api/class-browser.mdx
+++ b/python/versioned_docs/version-stable/api/class-browser.mdx
@@ -867,7 +867,6 @@ browser.on("disconnected", handler)
- [Browser]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-browsercontext.mdx b/python/versioned_docs/version-stable/api/class-browsercontext.mdx
index daa17a2c127..4d37811866c 100644
--- a/python/versioned_docs/version-stable/api/class-browsercontext.mdx
+++ b/python/versioned_docs/version-stable/api/class-browsercontext.mdx
@@ -96,13 +96,13 @@ await browser_context.add_cookies([cookie_object1, cookie_object2])
- `url` [str] *(optional)*
- Either url or domain / path are required. Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `domain` [str] *(optional)*
- For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either url or domain / path are required. Optional.
+ For the cookie to apply to all subdomains as well, prefix domain with a dot, like this: ".example.com". Either `url` or both `domain` and `path` are required. Optional.
- `path` [str] *(optional)*
- Either url or domain / path are required Optional.
+ Either `url` or both `domain` and `path` are required. Optional.
- `expires` [float] *(optional)*
Unix time in seconds. Optional.
@@ -1748,7 +1748,6 @@ browser_context.background_pages
- [List]\[[Page]\]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-browsertype.mdx b/python/versioned_docs/version-stable/api/class-browsertype.mdx
index 6bfb06f39f8..bf6bc4810dc 100644
--- a/python/versioned_docs/version-stable/api/class-browsertype.mdx
+++ b/python/versioned_docs/version-stable/api/class-browsertype.mdx
@@ -633,7 +633,6 @@ browser_type.name
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-cdpsession.mdx b/python/versioned_docs/version-stable/api/class-cdpsession.mdx
index c9a4ff6dae0..4523deddbe5 100644
--- a/python/versioned_docs/version-stable/api/class-cdpsession.mdx
+++ b/python/versioned_docs/version-stable/api/class-cdpsession.mdx
@@ -98,7 +98,6 @@ cdp_session.send(method, **kwargs)
- [Dict]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-clock.mdx b/python/versioned_docs/version-stable/api/class-clock.mdx
index fb3dd0ece9a..60d09ead0d2 100644
--- a/python/versioned_docs/version-stable/api/class-clock.mdx
+++ b/python/versioned_docs/version-stable/api/class-clock.mdx
@@ -329,7 +329,6 @@ await page.clock.set_system_time("2020-02-02")
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-consolemessage.mdx b/python/versioned_docs/version-stable/api/class-consolemessage.mdx
index c59988a3847..6996f8f1cb6 100644
--- a/python/versioned_docs/version-stable/api/class-consolemessage.mdx
+++ b/python/versioned_docs/version-stable/api/class-consolemessage.mdx
@@ -154,8 +154,24 @@ console_message.type
**Returns**
- "log" | "debug" | "info" | "error" | "warning" | "dir" | "dirxml" | "table" | "trace" | "clear" | "startGroup" | "startGroupCollapsed" | "endGroup" | "assert" | "profile" | "profileEnd" | "count" | "timeEnd"#
+---
+
+### worker {#console-message-worker}
+
+Added in: v1.57consoleMessage.worker
+
+The web worker or service worker that produced this console message, if any. Note that console messages from web workers also have non-null [console_message.page](/api/class-consolemessage.mdx#console-message-page).
+
+**Usage**
+
+```python
+console_message.worker
+```
+
+**Returns**
+- [NoneType] | [Worker]#
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-dialog.mdx b/python/versioned_docs/version-stable/api/class-dialog.mdx
index 42f2736e568..596febb19b5 100644
--- a/python/versioned_docs/version-stable/api/class-dialog.mdx
+++ b/python/versioned_docs/version-stable/api/class-dialog.mdx
@@ -187,7 +187,6 @@ dialog.type
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-download.mdx b/python/versioned_docs/version-stable/api/class-download.mdx
index 8c5089e052c..5ec71c5da27 100644
--- a/python/versioned_docs/version-stable/api/class-download.mdx
+++ b/python/versioned_docs/version-stable/api/class-download.mdx
@@ -220,7 +220,6 @@ download.url
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-elementhandle.mdx b/python/versioned_docs/version-stable/api/class-elementhandle.mdx
index 140ffd377a2..7fea4fb279d 100644
--- a/python/versioned_docs/version-stable/api/class-elementhandle.mdx
+++ b/python/versioned_docs/version-stable/api/class-elementhandle.mdx
@@ -362,6 +362,9 @@ element_handle.click(**kwargs)
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [float] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [browser_context.set_default_timeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.set_default_timeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -435,6 +438,9 @@ element_handle.dblclick(**kwargs)
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [float] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [browser_context.set_default_timeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.set_default_timeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -1782,7 +1788,6 @@ This method does not work across navigations, use [page.wait_for_selector()](/ap
- [NoneType] | [ElementHandle]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-error.mdx b/python/versioned_docs/version-stable/api/class-error.mdx
index 7afaa2c2102..c3ad4aac861 100644
--- a/python/versioned_docs/version-stable/api/class-error.mdx
+++ b/python/versioned_docs/version-stable/api/class-error.mdx
@@ -65,7 +65,6 @@ error.stack
- [str]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-filechooser.mdx b/python/versioned_docs/version-stable/api/class-filechooser.mdx
index 686484d1323..a47b4509b45 100644
--- a/python/versioned_docs/version-stable/api/class-filechooser.mdx
+++ b/python/versioned_docs/version-stable/api/class-filechooser.mdx
@@ -137,7 +137,6 @@ file_chooser.page
- [Page]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-frame.mdx b/python/versioned_docs/version-stable/api/class-frame.mdx
index efffa94f093..d35cd35dd80 100644
--- a/python/versioned_docs/version-stable/api/class-frame.mdx
+++ b/python/versioned_docs/version-stable/api/class-frame.mdx
@@ -199,6 +199,9 @@ frame.drag_and_drop(source, target, **kwargs)
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `strict` [bool] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -3229,7 +3232,6 @@ frame.wait_for_timeout(timeout)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-framelocator.mdx b/python/versioned_docs/version-stable/api/class-framelocator.mdx
index 6c8a9e9b184..d38a4fef935 100644
--- a/python/versioned_docs/version-stable/api/class-framelocator.mdx
+++ b/python/versioned_docs/version-stable/api/class-framelocator.mdx
@@ -744,7 +744,6 @@ frame_locator.nth(index)
- [FrameLocator]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-jshandle.mdx b/python/versioned_docs/version-stable/api/class-jshandle.mdx
index fb7c05dd4b0..b31fb0ae3aa 100644
--- a/python/versioned_docs/version-stable/api/class-jshandle.mdx
+++ b/python/versioned_docs/version-stable/api/class-jshandle.mdx
@@ -253,7 +253,6 @@ js_handle.as_element()
- [NoneType] | [ElementHandle]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-keyboard.mdx b/python/versioned_docs/version-stable/api/class-keyboard.mdx
index 081287e132d..6b5c78b90ae 100644
--- a/python/versioned_docs/version-stable/api/class-keyboard.mdx
+++ b/python/versioned_docs/version-stable/api/class-keyboard.mdx
@@ -362,7 +362,6 @@ keyboard.up(key)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-locator.mdx b/python/versioned_docs/version-stable/api/class-locator.mdx
index c8b70edb155..dcdf23e3e02 100644
--- a/python/versioned_docs/version-stable/api/class-locator.mdx
+++ b/python/versioned_docs/version-stable/api/class-locator.mdx
@@ -579,6 +579,9 @@ await page.locator("canvas").click(
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [float] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [browser_context.set_default_timeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.set_default_timeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -687,6 +690,9 @@ locator.dblclick(**kwargs)
A point to use relative to the top-left corner of element padding box. If not specified, uses some visible point of the element.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
- `timeout` [float] *(optional)*#
Maximum time in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [browser_context.set_default_timeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout) or [page.set_default_timeout()](/api/class-page.mdx#page-set-default-timeout) methods.
@@ -926,6 +932,9 @@ await source.drag_to(
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `target_position` [Dict] *(optional)*#
- `x` [float]
@@ -3311,6 +3320,51 @@ await frame_locator.get_by_role("button").click()
---
+### description {#locator-description}
+
+Added in: v1.57locator.description
+
+Returns locator description previously set with [locator.describe()](/api/class-locator.mdx#locator-describe). Returns `null` if no custom description has been set. Prefer `Locator.toString()` for a human-readable representation, as it uses the description when available.
+
+**Usage**
+
+
+
+
+```py
+button = page.get_by_role("button").describe("Subscribe button")
+print(button.description()) # "Subscribe button"
+
+input = page.get_by_role("textbox")
+print(input.description()) # None
+```
+
+
+
+
+```py
+button = page.get_by_role("button").describe("Subscribe button")
+print(button.description()) # "Subscribe button"
+
+input = page.get_by_role("textbox")
+print(input.description()) # None
+```
+
+
+
+
+**Returns**
+- [NoneType] | [str]#
+
+---
+
### first {#locator-first}
Added in: v1.14locator.first
@@ -3478,7 +3532,6 @@ To press a special key, like `Control` or `ArrowDown`, use [locator.press()](/ap
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-locatorassertions.mdx b/python/versioned_docs/version-stable/api/class-locatorassertions.mdx
index 038085b15ca..5f11b446be6 100644
--- a/python/versioned_docs/version-stable/api/class-locatorassertions.mdx
+++ b/python/versioned_docs/version-stable/api/class-locatorassertions.mdx
@@ -2328,7 +2328,6 @@ await expect(page.locator('body')).to_match_aria_snapshot('''
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-mouse.mdx b/python/versioned_docs/version-stable/api/class-mouse.mdx
index 48a001261bd..91b008c3399 100644
--- a/python/versioned_docs/version-stable/api/class-mouse.mdx
+++ b/python/versioned_docs/version-stable/api/class-mouse.mdx
@@ -174,7 +174,7 @@ mouse.move(x, y, **kwargs)
Y coordinate relative to the main frame's viewport in CSS pixels.
- `steps` [int] *(optional)*#
- Defaults to 1. Sends intermediate `mousemove` events.
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between Playwright's current cursor position and the provided destination. When set to 1, emits a single `mousemove` event at the destination location.
**Returns**
- [NoneType]#
@@ -236,7 +236,6 @@ mouse.wheel(delta_x, delta_y)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-page.mdx b/python/versioned_docs/version-stable/api/class-page.mdx
index c70783d6fe7..4e8c46c863f 100644
--- a/python/versioned_docs/version-stable/api/class-page.mdx
+++ b/python/versioned_docs/version-stable/api/class-page.mdx
@@ -560,6 +560,9 @@ await page.drag_and_drop(
Clicks on the source element at this point relative to the top-left corner of the element's padding box. If not specified, some visible point of the element is used.
+- `steps` [int] *(optional)* Added in: v1.57#
+
+ Defaults to 1. Sends `n` interpolated `mousemove` events to represent travel between the `mousedown` and `mouseup` of the drag. When set to 1, emits a single `mousemove` event at the destination location.
- `strict` [bool] *(optional)* Added in: v1.14#
When true, the call requires selector to resolve to a single element. If given selector resolves to more than one element, the call throws an exception.
@@ -4085,28 +4088,6 @@ page.on("worker", handler)
## Deprecated
-### accessibility {#page-accessibility}
-
-Added before v1.9page.accessibility
-
-:::warning Deprecated
-
-This property is discouraged. Please use other libraries such as [Axe](https://www.deque.com/axe/) if you need to test page accessibility. See our Node.js [guide](https://playwright.dev/docs/accessibility-testing) for integration with Axe.
-
-:::
-
-
-**Usage**
-
-```python
-page.accessibility
-```
-
-**Type**
-- [Accessibility]
-
----
-
### check {#page-check}
Added before v1.9page.check
@@ -5906,7 +5887,6 @@ await page.wait_for_timeout(1000)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-pageassertions.mdx b/python/versioned_docs/version-stable/api/class-pageassertions.mdx
index c4ccdb63773..2986e2d2e38 100644
--- a/python/versioned_docs/version-stable/api/class-pageassertions.mdx
+++ b/python/versioned_docs/version-stable/api/class-pageassertions.mdx
@@ -213,7 +213,6 @@ await expect(page).to_have_url(re.compile(".*checkout"))
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-playwright.mdx b/python/versioned_docs/version-stable/api/class-playwright.mdx
index 34e089eedde..f752f7265a8 100644
--- a/python/versioned_docs/version-stable/api/class-playwright.mdx
+++ b/python/versioned_docs/version-stable/api/class-playwright.mdx
@@ -250,7 +250,6 @@ playwright.webkit
- [BrowserType]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-request.mdx b/python/versioned_docs/version-stable/api/class-request.mdx
index 98610ce4a86..6f047b19a30 100644
--- a/python/versioned_docs/version-stable/api/class-request.mdx
+++ b/python/versioned_docs/version-stable/api/class-request.mdx
@@ -479,7 +479,6 @@ request.url
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-response.mdx b/python/versioned_docs/version-stable/api/class-response.mdx
index 415c87769a6..cfd1d5ec254 100644
--- a/python/versioned_docs/version-stable/api/class-response.mdx
+++ b/python/versioned_docs/version-stable/api/class-response.mdx
@@ -359,7 +359,6 @@ response.url
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-route.mdx b/python/versioned_docs/version-stable/api/class-route.mdx
index eb4f23c7b3d..652f2b46cee 100644
--- a/python/versioned_docs/version-stable/api/class-route.mdx
+++ b/python/versioned_docs/version-stable/api/class-route.mdx
@@ -484,7 +484,6 @@ route.request
- [Request]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-selectors.mdx b/python/versioned_docs/version-stable/api/class-selectors.mdx
index fd640114f3c..4d0cc31fb89 100644
--- a/python/versioned_docs/version-stable/api/class-selectors.mdx
+++ b/python/versioned_docs/version-stable/api/class-selectors.mdx
@@ -151,7 +151,6 @@ selectors.set_test_id_attribute(attribute_name)
Test id attribute name.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-timeouterror.mdx b/python/versioned_docs/version-stable/api/class-timeouterror.mdx
index 813d2b1fb7f..05db649016c 100644
--- a/python/versioned_docs/version-stable/api/class-timeouterror.mdx
+++ b/python/versioned_docs/version-stable/api/class-timeouterror.mdx
@@ -61,7 +61,6 @@ asyncio.run(main())
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-touchscreen.mdx b/python/versioned_docs/version-stable/api/class-touchscreen.mdx
index 91aa8b53b0e..cfd88ac2c2f 100644
--- a/python/versioned_docs/version-stable/api/class-touchscreen.mdx
+++ b/python/versioned_docs/version-stable/api/class-touchscreen.mdx
@@ -45,7 +45,6 @@ touchscreen.tap(x, y)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-tracing.mdx b/python/versioned_docs/version-stable/api/class-tracing.mdx
index e81235ccc09..06345073b13 100644
--- a/python/versioned_docs/version-stable/api/class-tracing.mdx
+++ b/python/versioned_docs/version-stable/api/class-tracing.mdx
@@ -325,7 +325,6 @@ tracing.stop_chunk(**kwargs)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-video.mdx b/python/versioned_docs/version-stable/api/class-video.mdx
index 616fbab6943..12269289fbc 100644
--- a/python/versioned_docs/version-stable/api/class-video.mdx
+++ b/python/versioned_docs/version-stable/api/class-video.mdx
@@ -93,7 +93,6 @@ video.save_as(path)
- [NoneType]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-weberror.mdx b/python/versioned_docs/version-stable/api/class-weberror.mdx
index d5e3a5ba047..f17981a09e6 100644
--- a/python/versioned_docs/version-stable/api/class-weberror.mdx
+++ b/python/versioned_docs/version-stable/api/class-weberror.mdx
@@ -79,7 +79,6 @@ web_error.page
- [NoneType] | [Page]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-websocket.mdx b/python/versioned_docs/version-stable/api/class-websocket.mdx
index 7a7feca871e..77e4e410e56 100644
--- a/python/versioned_docs/version-stable/api/class-websocket.mdx
+++ b/python/versioned_docs/version-stable/api/class-websocket.mdx
@@ -184,7 +184,6 @@ web_socket.on("socketerror", handler)
- [str]
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-websocketroute.mdx b/python/versioned_docs/version-stable/api/class-websocketroute.mdx
index 4bbf1e75a35..7f24994fa16 100644
--- a/python/versioned_docs/version-stable/api/class-websocketroute.mdx
+++ b/python/versioned_docs/version-stable/api/class-websocketroute.mdx
@@ -336,7 +336,6 @@ web_socket_route.url
- [str]#
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/api/class-worker.mdx b/python/versioned_docs/version-stable/api/class-worker.mdx
index e628e7adecb..5b316bf7da1 100644
--- a/python/versioned_docs/version-stable/api/class-worker.mdx
+++ b/python/versioned_docs/version-stable/api/class-worker.mdx
@@ -86,6 +86,58 @@ worker.evaluate_handle(expression, **kwargs)
---
+### expect_event {#worker-wait-for-event}
+
+Added in: v1.57worker.expect_event
+
+Waits for event to fire and passes its value into the predicate function. Returns when the predicate returns truthy value. Will throw an error if the page is closed before the event is fired. Returns the event data value.
+
+**Usage**
+
+
+
+
+```py
+with worker.expect_event("console") as event_info:
+ worker.evaluate("console.log(42)")
+message = event_info.value
+```
+
+
+
+
+```py
+async with worker.expect_event("console") as event_info:
+ await worker.evaluate("console.log(42)")
+message = await event_info.value
+```
+
+
+
+
+**Arguments**
+- `event` [str]#
+
+ Event name, same one typically passed into `*.on(event)`.
+- `predicate` [Callable] *(optional)*#
+
+ Receives the event data and resolves to truthy value when the waiting should resolve.
+- `timeout` [float] *(optional)*#
+
+ Maximum time to wait for in milliseconds. Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default value can be changed by using the [browser_context.set_default_timeout()](/api/class-browsercontext.mdx#browser-context-set-default-timeout).
+
+**Returns**
+- [EventContextManager]#
+
+---
+
## Properties
### url {#worker-url}
@@ -120,8 +172,24 @@ worker.on("close", handler)
**Event data**
- [Worker]
+---
+
+### on("console") {#worker-event-console}
+
+Added in: v1.57worker.on("console")
+
+Emitted when JavaScript within the worker calls one of console API methods, e.g. `console.log` or `console.dir`.
+
+**Usage**
+
+```python
+worker.on("console", handler)
+```
+
+**Event data**
+- [ConsoleMessage]
+
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/aria-snapshots.mdx b/python/versioned_docs/version-stable/aria-snapshots.mdx
index a4243ddf0dd..7029c7d60ee 100644
--- a/python/versioned_docs/version-stable/aria-snapshots.mdx
+++ b/python/versioned_docs/version-stable/aria-snapshots.mdx
@@ -449,7 +449,6 @@ Commonly used ARIA attributes, like `checked`, `disabled`, `expanded`, `level`,
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/auth.mdx b/python/versioned_docs/version-stable/auth.mdx
index 8e07a25a9ba..1ea22b1e366 100644
--- a/python/versioned_docs/version-stable/auth.mdx
+++ b/python/versioned_docs/version-stable/auth.mdx
@@ -204,7 +204,6 @@ await context.add_init_script("""(storage => {
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/browser-contexts.mdx b/python/versioned_docs/version-stable/browser-contexts.mdx
index acca34dd20b..7d828e8b434 100644
--- a/python/versioned_docs/version-stable/browser-contexts.mdx
+++ b/python/versioned_docs/version-stable/browser-contexts.mdx
@@ -117,7 +117,6 @@ asyncio.run(main())
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/browsers.mdx b/python/versioned_docs/version-stable/browsers.mdx
index 114c202d486..76ba4dcdb57 100644
--- a/python/versioned_docs/version-stable/browsers.mdx
+++ b/python/versioned_docs/version-stable/browsers.mdx
@@ -569,7 +569,6 @@ playwright uninstall --all
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/chrome-extensions.mdx b/python/versioned_docs/version-stable/chrome-extensions.mdx
index 4599cfabf30..552ca7be54d 100644
--- a/python/versioned_docs/version-stable/chrome-extensions.mdx
+++ b/python/versioned_docs/version-stable/chrome-extensions.mdx
@@ -158,7 +158,6 @@ def test_popup_page(page: Page, extension_id: str) -> None:
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/ci-intro.mdx b/python/versioned_docs/version-stable/ci-intro.mdx
index d267e50327b..ecf462770e4 100644
--- a/python/versioned_docs/version-stable/ci-intro.mdx
+++ b/python/versioned_docs/version-stable/ci-intro.mdx
@@ -100,7 +100,6 @@ Artifacts like trace files or console logs contain information about your test e
- [Learn more about running tests on other CI providers](/ci.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/ci.mdx b/python/versioned_docs/version-stable/ci.mdx
index b725495c588..398dcc9b3ac 100644
--- a/python/versioned_docs/version-stable/ci.mdx
+++ b/python/versioned_docs/version-stable/ci.mdx
@@ -60,7 +60,7 @@ jobs:
run: python -m playwright install --with-deps
- name: Run your tests
run: pytest --tracing=retain-on-failure
- - uses: actions/upload-artifact@v4
+ - uses: actions/upload-artifact@v5
if: ${{ !cancelled() }}
with:
name: playwright-traces
@@ -83,7 +83,7 @@ jobs:
name: 'Playwright Tests'
runs-on: ubuntu-latest
container:
- image: mcr.microsoft.com/playwright/python:v1.55.0-noble
+ image: mcr.microsoft.com/playwright/python:v1.56.0-noble
options: --user 1001
steps:
- uses: actions/checkout@v5
@@ -173,7 +173,7 @@ trigger:
pool:
vmImage: ubuntu-latest
-container: mcr.microsoft.com/playwright/python:v1.55.0-noble
+container: mcr.microsoft.com/playwright/python:v1.56.0-noble
steps:
- task: UsePythonVersion@0
@@ -197,7 +197,7 @@ Running Playwright on CircleCI is very similar to running on GitHub Actions. In
executors:
pw-noble-development:
docker:
- - image: mcr.microsoft.com/playwright/python:v1.55.0-noble
+ - image: mcr.microsoft.com/playwright/python:v1.56.0-noble
```
Note: When using the docker agent definition, you are specifying the resource class of where playwright runs to the 'medium' tier [here](https://circleci.com/docs/configuration-reference?#docker-execution-environment). The default behavior of Playwright is to set the number of workers to the detected core count (2 in the case of the medium tier). Overriding the number of workers to greater than this number will cause unnecessary timeouts and failures.
@@ -208,7 +208,7 @@ Jenkins supports Docker agents for pipelines. Use the [Playwright Docker image](
```groovy
pipeline {
- agent { docker { image 'mcr.microsoft.com/playwright/python:v1.55.0-noble' } }
+ agent { docker { image 'mcr.microsoft.com/playwright/python:v1.56.0-noble' } }
stages {
stage('e2e-tests') {
steps {
@@ -225,7 +225,7 @@ pipeline {
Bitbucket Pipelines can use public [Docker images as build environments](https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html). To run Playwright tests on Bitbucket, use our public Docker image ([see Dockerfile](./docker.mdx)).
```yml
-image: mcr.microsoft.com/playwright/python:v1.55.0-noble
+image: mcr.microsoft.com/playwright/python:v1.56.0-noble
```
### GitLab CI
@@ -238,7 +238,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright/python:v1.55.0-noble
+ image: mcr.microsoft.com/playwright/python:v1.56.0-noble
script:
...
```
@@ -268,7 +268,6 @@ xvfb-run pytest
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/clock.mdx b/python/versioned_docs/version-stable/clock.mdx
index 987d7f07e59..a7ae20b5bea 100644
--- a/python/versioned_docs/version-stable/clock.mdx
+++ b/python/versioned_docs/version-stable/clock.mdx
@@ -306,7 +306,6 @@ await expect(locator).to_have_text("2/2/2024, 10:00:02 AM")
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/codegen-intro.mdx b/python/versioned_docs/version-stable/codegen-intro.mdx
index a3331b35d9f..860c63d98d6 100644
--- a/python/versioned_docs/version-stable/codegen-intro.mdx
+++ b/python/versioned_docs/version-stable/codegen-intro.mdx
@@ -63,7 +63,6 @@ You can generate tests using emulation for specific viewports, devices, color sc
- [See a trace of your tests](./trace-viewer-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/codegen.mdx b/python/versioned_docs/version-stable/codegen.mdx
index 991da16486e..95bd845479a 100644
--- a/python/versioned_docs/version-stable/codegen.mdx
+++ b/python/versioned_docs/version-stable/codegen.mdx
@@ -204,7 +204,6 @@ asyncio.run(main())
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/debug.mdx b/python/versioned_docs/version-stable/debug.mdx
index 7278a6019e4..928dbd83dd3 100644
--- a/python/versioned_docs/version-stable/debug.mdx
+++ b/python/versioned_docs/version-stable/debug.mdx
@@ -321,7 +321,6 @@ await chromium.launch(headless=False, slow_mo=100)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/dialogs.mdx b/python/versioned_docs/version-stable/dialogs.mdx
index 32baf022d05..fe77fab47d9 100644
--- a/python/versioned_docs/version-stable/dialogs.mdx
+++ b/python/versioned_docs/version-stable/dialogs.mdx
@@ -164,7 +164,6 @@ await page.wait_for_function("window.waitForPrintDialog")
This will wait for the print dialog to be opened after the button is clicked. Make sure to evaluate the script before clicking the button / after the page is loaded.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/docker.mdx b/python/versioned_docs/version-stable/docker.mdx
index 3bec0151689..afb776042f2 100644
--- a/python/versioned_docs/version-stable/docker.mdx
+++ b/python/versioned_docs/version-stable/docker.mdx
@@ -22,7 +22,7 @@ This Docker image is intended to be used for testing and development purposes on
### Pull the image
```bash
-docker pull mcr.microsoft.com/playwright/python:v1.55.0-noble
+docker pull mcr.microsoft.com/playwright/python:v1.56.0-noble
```
### Run the image
@@ -34,7 +34,7 @@ By default, the Docker image will use the `root` user to run the browsers. This
On trusted websites, you can avoid creating a separate user and use root for it since you trust the code which will run on the browsers.
```bash
-docker run -it --rm --ipc=host mcr.microsoft.com/playwright/python:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host mcr.microsoft.com/playwright/python:v1.56.0-noble /bin/bash
```
#### Crawling and scraping
@@ -42,7 +42,7 @@ docker run -it --rm --ipc=host mcr.microsoft.com/playwright/python:v1.55.0-noble
On untrusted websites, it's recommended to use a separate user for launching the browsers in combination with the seccomp profile. Inside the container or if you are using the Docker image as a base image you have to use `adduser` for it.
```bash
-docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/python:v1.55.0-noble /bin/bash
+docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/python:v1.56.0-noble /bin/bash
```
[`seccomp_profile.json`](https://github.com/microsoft/playwright/blob/main/utils/docker/seccomp_profile.json) is needed to run Chromium with sandbox. This is a [default Docker seccomp profile](https://github.com/docker/engine/blob/d0d99b04cf6e00ed3fc27e81fc3d94e7eda70af3/profiles/seccomp/default.json) with extra user namespace cloning permissions:
@@ -82,7 +82,7 @@ You can run Playwright Server in Docker while keeping your tests running on the
Start the Playwright Server in Docker:
```bash
-docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
#### Connecting to the Server
@@ -122,7 +122,7 @@ async with async_playwright() as p:
If you need to access local servers from within the Docker container:
```bash
-docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.55.0-noble /bin/sh -c "npx -y playwright@1.55.0 run-server --port 3000 --host 0.0.0.0"
+docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.56.0-noble /bin/sh -c "npx -y playwright@1.56.0 run-server --port 3000 --host 0.0.0.0"
```
This makes `hostmachine` point to the host's localhost. Your tests should use `hostmachine` instead of `localhost` when accessing local servers.
@@ -137,9 +137,9 @@ When running tests remotely, ensure the Playwright version in your tests matches
See [all available image tags].
We currently publish images with the following tags:
-- `:v1.55.0` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-noble` - Playwright v1.55.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.55.0-jammy` - Playwright v1.55.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
+- `:v1.56.0` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-noble` - Playwright v1.56.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.56.0-jammy` - Playwright v1.56.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
:::note
@@ -163,12 +163,11 @@ To run Playwright inside Docker, you need to have Python, [Playwright browsers](
```Dockerfile
FROM python:3.12-bookworm
-RUN pip install playwright==@1.55.0 && \
+RUN pip install playwright==@1.56.0 && \
playwright install --with-deps
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/downloads.mdx b/python/versioned_docs/version-stable/downloads.mdx
index 6c37ed79047..37032ad7cfb 100644
--- a/python/versioned_docs/version-stable/downloads.mdx
+++ b/python/versioned_docs/version-stable/downloads.mdx
@@ -95,7 +95,6 @@ For uploading files, see the [uploading files](./input.mdx#upload-files) section
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/emulation.mdx b/python/versioned_docs/version-stable/emulation.mdx
index fa01256ba56..5f76a7b0e1d 100644
--- a/python/versioned_docs/version-stable/emulation.mdx
+++ b/python/versioned_docs/version-stable/emulation.mdx
@@ -490,7 +490,6 @@ context = await browser.new_context(
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/evaluating.mdx b/python/versioned_docs/version-stable/evaluating.mdx
index 15db7a8fc3b..91865f46fe5 100644
--- a/python/versioned_docs/version-stable/evaluating.mdx
+++ b/python/versioned_docs/version-stable/evaluating.mdx
@@ -287,7 +287,6 @@ await page.add_init_script(path="mocks/preload.js")
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/events.mdx b/python/versioned_docs/version-stable/events.mdx
index 4b28448bdc9..ba8c5e2d8c7 100644
--- a/python/versioned_docs/version-stable/events.mdx
+++ b/python/versioned_docs/version-stable/events.mdx
@@ -157,7 +157,6 @@ await page.evaluate("prompt('Enter a number:')")
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/extensibility.mdx b/python/versioned_docs/version-stable/extensibility.mdx
index 5cf8ddd901f..a7ada194ac5 100644
--- a/python/versioned_docs/version-stable/extensibility.mdx
+++ b/python/versioned_docs/version-stable/extensibility.mdx
@@ -95,7 +95,6 @@ button_count = await page.locator("tag=button").count()
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/frames.mdx b/python/versioned_docs/version-stable/frames.mdx
index 7b8edd275e8..7d1984f919f 100644
--- a/python/versioned_docs/version-stable/frames.mdx
+++ b/python/versioned_docs/version-stable/frames.mdx
@@ -84,7 +84,6 @@ await frame.fill('#username-input', 'John')
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/handles.mdx b/python/versioned_docs/version-stable/handles.mdx
index 225213bfe06..72aea6b5c83 100644
--- a/python/versioned_docs/version-stable/handles.mdx
+++ b/python/versioned_docs/version-stable/handles.mdx
@@ -246,7 +246,6 @@ await locator.click()
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/input.mdx b/python/versioned_docs/version-stable/input.mdx
index c057eddb31d..fb9fe084a36 100644
--- a/python/versioned_docs/version-stable/input.mdx
+++ b/python/versioned_docs/version-stable/input.mdx
@@ -684,7 +684,6 @@ await page.get_by_test_id("scrolling-container").evaluate("e => e.scrollTop += 1
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/intro.mdx b/python/versioned_docs/version-stable/intro.mdx
index 238d0384d73..2d56a8d7298 100644
--- a/python/versioned_docs/version-stable/intro.mdx
+++ b/python/versioned_docs/version-stable/intro.mdx
@@ -109,7 +109,6 @@ pip install pytest-playwright playwright -U
- [See a trace of your tests](./trace-viewer-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/languages.mdx b/python/versioned_docs/version-stable/languages.mdx
index 01505aa4434..6e5df708f90 100644
--- a/python/versioned_docs/version-stable/languages.mdx
+++ b/python/versioned_docs/version-stable/languages.mdx
@@ -35,7 +35,6 @@ Playwright for .NET comes with MSTest, NUnit, xUnit, and xUnit v3 [base classes]
* [GitHub repo](https://github.com/microsoft/playwright-dotnet)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/library.mdx b/python/versioned_docs/version-stable/library.mdx
index 6cd17df8fd7..5e96add12c0 100644
--- a/python/versioned_docs/version-stable/library.mdx
+++ b/python/versioned_docs/version-stable/library.mdx
@@ -200,7 +200,6 @@ On Windows Python 3.7, Playwright sets the default event loop to `ProactorEventL
Playwright's API is not thread-safe. If you are using Playwright in a multi-threaded environment, you should create a playwright instance per thread. See [threading issue](https://github.com/microsoft/playwright-python/issues/623) for more details.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/locators.mdx b/python/versioned_docs/version-stable/locators.mdx
index c4d8263f35e..adf5c5300ec 100644
--- a/python/versioned_docs/version-stable/locators.mdx
+++ b/python/versioned_docs/version-stable/locators.mdx
@@ -1862,7 +1862,6 @@ You can explicitly opt-out from strictness check by telling Playwright which ele
For less commonly used locators, look at the [other locators](./other-locators.mdx) guide.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/mock.mdx b/python/versioned_docs/version-stable/mock.mdx
index 8b5dec87626..241b912e82b 100644
--- a/python/versioned_docs/version-stable/mock.mdx
+++ b/python/versioned_docs/version-stable/mock.mdx
@@ -362,7 +362,6 @@ await page.route_web_socket("wss://example.com/ws", handler)
For more details, see [WebSocketRoute].
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/navigations.mdx b/python/versioned_docs/version-stable/navigations.mdx
index 8a63f3d4ef5..55c493c5f7f 100644
--- a/python/versioned_docs/version-stable/navigations.mdx
+++ b/python/versioned_docs/version-stable/navigations.mdx
@@ -142,7 +142,6 @@ Playwright splits the process of showing a new document in a page into **navigat
- page executes dynamically loaded scripts
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/network.mdx b/python/versioned_docs/version-stable/network.mdx
index 0171c3e2dce..8ccc767bcef 100644
--- a/python/versioned_docs/version-stable/network.mdx
+++ b/python/versioned_docs/version-stable/network.mdx
@@ -498,12 +498,12 @@ page.on("websocket", on_web_socket)
## Missing Network Events and Service Workers
Playwright's built-in [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) allow your tests to natively route requests and perform mocking and interception.
-1. If you're using Playwright's native [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [service_workers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
-1. It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-1. If you're interested in not solely using Service Workers for testing and network mocking, but in routing and listening for requests made by Service Workers themselves, please see [this experimental feature](https://github.com/microsoft/playwright/issues/15684).
+
+If you're using Playwright's native [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route), and it appears network events are missing, disable Service Workers by setting [service_workers](/api/class-browser.mdx#browser-new-context-option-service-workers) to `'block'`.
+
+It might be that you are using a mock tool such as Mock Service Worker (MSW). While this tool works out of the box for mocking responses, it adds its own Service Worker that takes over the network requests, hence making them invisible to [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route). If you are interested in both network testing and mocking, consider using built-in [browser_context.route()](/api/class-browsercontext.mdx#browser-context-route) and [page.route()](/api/class-page.mdx#page-route) for [response mocking](#handle-requests).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/other-locators.mdx b/python/versioned_docs/version-stable/other-locators.mdx
index 681d1acc4fb..92b1b7ae1cd 100644
--- a/python/versioned_docs/version-stable/other-locators.mdx
+++ b/python/versioned_docs/version-stable/other-locators.mdx
@@ -974,7 +974,6 @@ By default, chained selectors resolve to an element queried by the last selector
For example, `css=article >> text=Hello` captures the element with the text `Hello`, and `*css=article >> text=Hello` (note the `*`) captures the `article` element that contains some element with the text `Hello`.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/pages.mdx b/python/versioned_docs/version-stable/pages.mdx
index 67697213609..9ce26ce181d 100644
--- a/python/versioned_docs/version-stable/pages.mdx
+++ b/python/versioned_docs/version-stable/pages.mdx
@@ -253,7 +253,6 @@ page.on("popup", handle_popup)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/pom.mdx b/python/versioned_docs/version-stable/pom.mdx
index 7ac51b989a4..4ecf7741502 100644
--- a/python/versioned_docs/version-stable/pom.mdx
+++ b/python/versioned_docs/version-stable/pom.mdx
@@ -101,7 +101,6 @@ await search_page.search("search query")
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/release-notes.mdx b/python/versioned_docs/version-stable/release-notes.mdx
index a9674befe09..d58382dadce 100644
--- a/python/versioned_docs/version-stable/release-notes.mdx
+++ b/python/versioned_docs/version-stable/release-notes.mdx
@@ -7,6 +7,23 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import HTMLCard from '@site/src/components/HTMLCard';
+## Version 1.56
+
+### New APIs
+- New methods [page.console_messages()](/api/class-page.mdx#page-console-messages) and [page.page_errors()](/api/class-page.mdx#page-page-errors) for retrieving the most recent console messages from the page
+- New method [page.requests()](/api/class-page.mdx#page-requests) for retrieving the most recent network requests from the page
+
+### Breaking Changes
+- Event [browser_context.on("backgroundpage")](/api/class-browsercontext.mdx#browser-context-event-background-page) has been deprecated and will not be emitted. Method [browser_context.background_pages](/api/class-browsercontext.mdx#browser-context-background-pages) will return an empty list
+
+### Miscellaneous
+- Aria snapshots render and compare `input` `placeholder`
+
+### Browser Versions
+- Chromium 141.0.7390.37
+- Mozilla Firefox 142.0.1
+- WebKit 26.0
+
## Version 1.55
### Codegen
@@ -1852,7 +1869,6 @@ This version of Playwright was also tested against the following stable channels
- WebKit 14.1
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/running-tests.mdx b/python/versioned_docs/version-stable/running-tests.mdx
index 19d9e44c500..10fd48b4052 100644
--- a/python/versioned_docs/version-stable/running-tests.mdx
+++ b/python/versioned_docs/version-stable/running-tests.mdx
@@ -204,7 +204,6 @@ Check out our [debugging guide](./debug.mdx) to learn more about the [Playwright
- [Run your tests on CI with GitHub Actions](./ci-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/screenshots.mdx b/python/versioned_docs/version-stable/screenshots.mdx
index 7d53b59454e..3383100e60d 100644
--- a/python/versioned_docs/version-stable/screenshots.mdx
+++ b/python/versioned_docs/version-stable/screenshots.mdx
@@ -124,7 +124,6 @@ await page.locator(".header").screenshot(path="screenshot.png")
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/selenium-grid.mdx b/python/versioned_docs/version-stable/selenium-grid.mdx
index f0b3ed5947c..54994f1acba 100644
--- a/python/versioned_docs/version-stable/selenium-grid.mdx
+++ b/python/versioned_docs/version-stable/selenium-grid.mdx
@@ -124,7 +124,6 @@ Internally, Playwright connects to the browser using [Chrome DevTools Protocol](
This means that Selenium 3 is supported in a best-effort manner, where Playwright tries to connect to the grid node directly. Grid nodes must be directly accessible from the machine that runs Playwright.
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/test-assertions.mdx b/python/versioned_docs/version-stable/test-assertions.mdx
index d83220d49ae..f7c9a2ee2e1 100644
--- a/python/versioned_docs/version-stable/test-assertions.mdx
+++ b/python/versioned_docs/version-stable/test-assertions.mdx
@@ -84,7 +84,6 @@ def test_foobar(page: Page) -> None:
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/test-runners.mdx b/python/versioned_docs/version-stable/test-runners.mdx
index 2a19e191cf5..3242fa716e3 100644
--- a/python/versioned_docs/version-stable/test-runners.mdx
+++ b/python/versioned_docs/version-stable/test-runners.mdx
@@ -285,7 +285,6 @@ async def test_foo(page: Page):
```
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/touch-events.mdx b/python/versioned_docs/version-stable/touch-events.mdx
index a024dee6caf..ce3243614e7 100644
--- a/python/versioned_docs/version-stable/touch-events.mdx
+++ b/python/versioned_docs/version-stable/touch-events.mdx
@@ -307,7 +307,6 @@ asyncio.run(main())
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/trace-viewer-intro.mdx b/python/versioned_docs/version-stable/trace-viewer-intro.mdx
index 84c6920f141..00ddbbf5e24 100644
--- a/python/versioned_docs/version-stable/trace-viewer-intro.mdx
+++ b/python/versioned_docs/version-stable/trace-viewer-intro.mdx
@@ -97,7 +97,6 @@ To learn more check out our detailed guide on [Trace Viewer](/trace-viewer.mdx).
- [Learn more about Trace Viewer](/trace-viewer.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/trace-viewer.mdx b/python/versioned_docs/version-stable/trace-viewer.mdx
index 01b762bad76..66a527b1d50 100644
--- a/python/versioned_docs/version-stable/trace-viewer.mdx
+++ b/python/versioned_docs/version-stable/trace-viewer.mdx
@@ -22,7 +22,7 @@ playwright show-trace trace.zip
### Using [trace.playwright.dev](https://trace.playwright.dev)
-[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload trace files using drag and drop or via the `Select file(s)` button.
+[trace.playwright.dev](https://trace.playwright.dev) is a statically hosted variant of the Trace Viewer. You can upload a trace file using drag and drop or via the `Select file` button.
Trace Viewer loads the trace entirely in your browser and does not transmit any data externally.
@@ -39,7 +39,7 @@ playwright show-trace https://example.com/trace.zip
When using [trace.playwright.dev](https://trace.playwright.dev), you can also pass the URL of your uploaded trace at some accessible storage (e.g. inside your CI) as a query parameter. CORS (Cross-Origin Resource Sharing) rules might apply.
```txt
-https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/fa874b0d59cdedec675521c21124e93161d66533.zip
+https://trace.playwright.dev/?trace=https://demo.playwright.dev/reports/todomvc/data/e6099cadf79aa753d5500aa9508f9d1dbd87b5ee.zip
```
## Recording a trace
@@ -195,7 +195,6 @@ Next to the Actions tab you will find the Metadata tab which will show you more

-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/videos.mdx b/python/versioned_docs/version-stable/videos.mdx
index 9c671d9501b..5439ba65b71 100644
--- a/python/versioned_docs/version-stable/videos.mdx
+++ b/python/versioned_docs/version-stable/videos.mdx
@@ -106,7 +106,6 @@ Note that the video is only available after the page or browser context is close
:::
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/webview2.mdx b/python/versioned_docs/version-stable/webview2.mdx
index ded4e5dcca1..91221f3f282 100644
--- a/python/versioned_docs/version-stable/webview2.mdx
+++ b/python/versioned_docs/version-stable/webview2.mdx
@@ -170,7 +170,6 @@ Inside your webview2 control, you can just right-click to open the context menu
For debugging tests, see the Playwright [Debugging guide](./debug).
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_docs/version-stable/writing-tests.mdx b/python/versioned_docs/version-stable/writing-tests.mdx
index 9aff4344ac0..15ed082f14c 100644
--- a/python/versioned_docs/version-stable/writing-tests.mdx
+++ b/python/versioned_docs/version-stable/writing-tests.mdx
@@ -168,7 +168,6 @@ def test_main_navigation(page: Page):
- [Run tests on CI with GitHub Actions](./ci-intro.mdx)
-[Accessibility]: /api/class-accessibility.mdx "Accessibility"
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
[APIResponse]: /api/class-apiresponse.mdx "APIResponse"
diff --git a/python/versioned_sidebars/version-stable-sidebars.json b/python/versioned_sidebars/version-stable-sidebars.json
index 2f63b3531ba..9e37a6d7966 100644
--- a/python/versioned_sidebars/version-stable-sidebars.json
+++ b/python/versioned_sidebars/version-stable-sidebars.json
@@ -227,10 +227,6 @@
"type": "doc",
"id": "api/class-apiresponse"
},
- {
- "type": "doc",
- "id": "api/class-accessibility"
- },
{
"type": "doc",
"id": "api/class-browser"