From c9d26b80c744c3bc78e654a54651d09b9f744795 Mon Sep 17 00:00:00 2001 From: "microsoft-playwright-automation[bot]" <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 10:21:43 +0000 Subject: [PATCH] feat(roll): roll to ToT Playwright (04-02-26) --- .../docs/api/class-apiresponseassertions.mdx | 6 ++---- dotnet/docs/api/class-locatorassertions.mdx | 10 ++++------ dotnet/docs/api/class-pageassertions.mdx | 10 ++++------ dotnet/docs/api/class-request.mdx | 19 +++++++++++++++++++ dotnet/docs/api/class-video.mdx | 13 +++++++++---- java/docs/api/class-apiresponseassertions.mdx | 10 ++++------ java/docs/api/class-locatorassertions.mdx | 10 ++++------ java/docs/api/class-pageassertions.mdx | 10 ++++------ java/docs/api/class-request.mdx | 19 +++++++++++++++++++ java/docs/api/class-video.mdx | 12 +++++++++--- .../docs/api/class-apiresponseassertions.mdx | 10 ++++------ nodejs/docs/api/class-genericassertions.mdx | 12 +++++------- nodejs/docs/api/class-locatorassertions.mdx | 10 ++++------ nodejs/docs/api/class-pageassertions.mdx | 10 ++++------ nodejs/docs/api/class-request.mdx | 19 +++++++++++++++++++ nodejs/docs/api/class-video.mdx | 12 +++++++++--- nodejs/docs/debug.mdx | 2 +- python/docs/api/class-request.mdx | 19 +++++++++++++++++++ python/docs/api/class-video.mdx | 14 +++++++++----- 19 files changed, 152 insertions(+), 75 deletions(-) diff --git a/dotnet/docs/api/class-apiresponseassertions.mdx b/dotnet/docs/api/class-apiresponseassertions.mdx index acc02232408..375b06ac48d 100644 --- a/dotnet/docs/api/class-apiresponseassertions.mdx +++ b/dotnet/docs/api/class-apiresponseassertions.mdx @@ -33,13 +33,11 @@ Ensures the response status code is within `200..299` range. Added in: v1.20apiResponseAssertions.Not -Makes the assertion check for the opposite condition. For example, this code tests that the response status is not successful: +Makes the assertion check for the opposite condition. **Usage** -```csharp -Expect(Response).Not -``` +For example, this code tests that the response status is not successful: **Type** - [APIResponseAssertions] diff --git a/dotnet/docs/api/class-locatorassertions.mdx b/dotnet/docs/api/class-locatorassertions.mdx index d0beb208ec1..af83bbbef3c 100644 --- a/dotnet/docs/api/class-locatorassertions.mdx +++ b/dotnet/docs/api/class-locatorassertions.mdx @@ -893,16 +893,14 @@ await Expect(page.Locator("body")).ToMatchAriaSnapshotAsync(@" Added in: v1.20locatorAssertions.Not -Makes the assertion check for the opposite condition. For example, this code tests that the Locator doesn't contain text `"error"`: - -```csharp -await Expect(locator).Not.ToContainTextAsync("error"); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the Locator doesn't contain text `"error"`: + ```csharp -Expect(Locator).Not +await Expect(locator).Not.ToContainTextAsync("error"); ``` **Type** diff --git a/dotnet/docs/api/class-pageassertions.mdx b/dotnet/docs/api/class-pageassertions.mdx index 50b532f3e25..5e5bd5b6b2e 100644 --- a/dotnet/docs/api/class-pageassertions.mdx +++ b/dotnet/docs/api/class-pageassertions.mdx @@ -94,16 +94,14 @@ await Expect(Page).ToHaveURLAsync(new Regex(".*checkout")); Added in: v1.20pageAssertions.Not -Makes the assertion check for the opposite condition. For example, this code tests that the page URL doesn't contain `"error"`: - -```csharp -await Expect(Page).Not.ToHaveURLAsync("error"); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the page URL doesn't contain `"error"`: + ```csharp -Expect(Page).Not +await Expect(Page).Not.ToHaveURLAsync("error"); ``` **Type** diff --git a/dotnet/docs/api/class-request.mdx b/dotnet/docs/api/class-request.mdx index edb81d78dfe..85cb3ea9153 100644 --- a/dotnet/docs/api/class-request.mdx +++ b/dotnet/docs/api/class-request.mdx @@ -43,6 +43,25 @@ await Request.AllHeadersAsync(); --- +### ExistingResponse {#request-existing-response} + +Added in: v1.59request.ExistingResponse + +Returns the [Response] object if the response has already been received, `null` otherwise. + +Unlike [Request.ResponseAsync()](/api/class-request.mdx#request-response), this method does not wait for the response to arrive. It returns immediately with the response object if the response has been received, or `null` if the response has not been received yet. + +**Usage** + +```csharp +Request.ExistingResponse +``` + +**Returns** +- [Response]?# + +--- + ### Failure {#request-failure} Added before v1.9request.Failure diff --git a/dotnet/docs/api/class-video.mdx b/dotnet/docs/api/class-video.mdx index 73e92d07c21..d2bf16aeb17 100644 --- a/dotnet/docs/api/class-video.mdx +++ b/dotnet/docs/api/class-video.mdx @@ -18,8 +18,7 @@ Alternatively, you can use [Video.StartAsync()](/api/class-video.mdx#video-start ```csharp await page.Video.StartAsync(); // ... perform actions ... -await page.Video.StopAsync(); -await page.Video.SaveAsAsync("video.webm"); +await page.Video.StopAsync(new() { Path = "video.webm" }); ``` @@ -118,14 +117,20 @@ await page.Video.StopAsync(new() { Path = "video.webm" }); Added in: v1.59video.StopAsync -Stops video recording started with [Video.StartAsync()](/api/class-video.mdx#video-start). Use [Video.PathAsync()](/api/class-video.mdx#video-path) or [Video.SaveAsAsync()](/api/class-video.mdx#video-save-as) methods to access the video file. +Stops video recording started with [Video.StartAsync()](/api/class-video.mdx#video-start). **Usage** ```csharp -await Video.StopAsync(); +await Video.StopAsync(options); ``` +**Arguments** +- `options` `VideoStopOptions?` *(optional)* + - `Path` [string]? *(optional)*# + + Path where the video should be saved. + **Returns** - [void]# diff --git a/java/docs/api/class-apiresponseassertions.mdx b/java/docs/api/class-apiresponseassertions.mdx index b12c477f99c..e93eeb3fabf 100644 --- a/java/docs/api/class-apiresponseassertions.mdx +++ b/java/docs/api/class-apiresponseassertions.mdx @@ -52,16 +52,14 @@ assertThat(response).isOK(); Added in: v1.20apiResponseAssertions.not() -Makes the assertion check for the opposite condition. For example, this code tests that the response status is not successful: - -```java -assertThat(response).not().isOK(); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the response status is not successful: + ```java -assertThat(response).not() +assertThat(response).not().isOK(); ``` **Returns** diff --git a/java/docs/api/class-locatorassertions.mdx b/java/docs/api/class-locatorassertions.mdx index 69b92aa7cfc..c1ae9447303 100644 --- a/java/docs/api/class-locatorassertions.mdx +++ b/java/docs/api/class-locatorassertions.mdx @@ -868,16 +868,14 @@ assertThat(page.locator("body")).matchesAriaSnapshot(""" Added in: v1.20locatorAssertions.not() -Makes the assertion check for the opposite condition. For example, this code tests that the Locator doesn't contain text `"error"`: - -```java -assertThat(locator).not().containsText("error"); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the Locator doesn't contain text `"error"`: + ```java -assertThat(locator).not() +assertThat(locator).not().containsText("error"); ``` **Returns** diff --git a/java/docs/api/class-pageassertions.mdx b/java/docs/api/class-pageassertions.mdx index 887e0bd5fe4..1712c67bb47 100644 --- a/java/docs/api/class-pageassertions.mdx +++ b/java/docs/api/class-pageassertions.mdx @@ -90,16 +90,14 @@ assertThat(page).hasURL(".com"); Added in: v1.20pageAssertions.not() -Makes the assertion check for the opposite condition. For example, this code tests that the page URL doesn't contain `"error"`: - -```java -assertThat(page).not().hasURL("error"); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the page URL doesn't contain `"error"`: + ```java -assertThat(page).not() +assertThat(page).not().hasURL("error"); ``` **Returns** diff --git a/java/docs/api/class-request.mdx b/java/docs/api/class-request.mdx index 11d2f87c357..03e8e65fd49 100644 --- a/java/docs/api/class-request.mdx +++ b/java/docs/api/class-request.mdx @@ -43,6 +43,25 @@ Request.allHeaders(); --- +### existingResponse {#request-existing-response} + +Added in: v1.59request.existingResponse + +Returns the [Response] object if the response has already been received, `null` otherwise. + +Unlike [Request.response()](/api/class-request.mdx#request-response), this method does not wait for the response to arrive. It returns immediately with the response object if the response has been received, or `null` if the response has not been received yet. + +**Usage** + +```java +Request.existingResponse(); +``` + +**Returns** +- [null] | [Response]# + +--- + ### failure {#request-failure} Added before v1.9request.failure diff --git a/java/docs/api/class-video.mdx b/java/docs/api/class-video.mdx index 8e73e075229..2febf2a5e5e 100644 --- a/java/docs/api/class-video.mdx +++ b/java/docs/api/class-video.mdx @@ -18,8 +18,7 @@ Alternatively, you can use [Video.start()](/api/class-video.mdx#video-start) and ```java page.video().start(); // ... perform actions ... -page.video().stop(); -page.video().saveAs(Paths.get("video.webm")); +page.video().stop(new Video.StopOptions().setPath(Paths.get("video.webm"))); ``` @@ -118,14 +117,21 @@ page.video().stop(new Video.StopOptions().setPath(Paths.get("video.webm"))); Added in: v1.59video.stop -Stops video recording started with [Video.start()](/api/class-video.mdx#video-start). Use [Video.path()](/api/class-video.mdx#video-path) or [Video.saveAs()](/api/class-video.mdx#video-save-as) methods to access the video file. +Stops video recording started with [Video.start()](/api/class-video.mdx#video-start). **Usage** ```java Video.stop(); +Video.stop(options); ``` +**Arguments** +- `options` `Video.StopOptions` *(optional)* + - `setPath` [Path] *(optional)*# + + Path where the video should be saved. + **Returns** - [void]# diff --git a/nodejs/docs/api/class-apiresponseassertions.mdx b/nodejs/docs/api/class-apiresponseassertions.mdx index d566f1cf19b..edede3d6e03 100644 --- a/nodejs/docs/api/class-apiresponseassertions.mdx +++ b/nodejs/docs/api/class-apiresponseassertions.mdx @@ -47,16 +47,14 @@ await expect(response).toBeOK(); Added in: v1.20apiResponseAssertions.not -Makes the assertion check for the opposite condition. For example, this code tests that the response status is not successful: - -```js -await expect(response).not.toBeOK(); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the response status is not successful: + ```js -expect(response).not +await expect(response).not.toBeOK(); ``` **Type** diff --git a/nodejs/docs/api/class-genericassertions.mdx b/nodejs/docs/api/class-genericassertions.mdx index 8e2bde4fb6b..b85af067bf1 100644 --- a/nodejs/docs/api/class-genericassertions.mdx +++ b/nodejs/docs/api/class-genericassertions.mdx @@ -768,17 +768,15 @@ expect(() => { Added in: v1.9genericAssertions.not -Makes the assertion check for the opposite condition. For example, the following code passes: - -```js -const value = 1; -expect(value).not.toBe(2); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, the following code passes: + ```js -expect(value).not +const value = 1; +expect(value).not.toBe(2); ``` **Type** diff --git a/nodejs/docs/api/class-locatorassertions.mdx b/nodejs/docs/api/class-locatorassertions.mdx index dd756b50ca9..21f76f7c977 100644 --- a/nodejs/docs/api/class-locatorassertions.mdx +++ b/nodejs/docs/api/class-locatorassertions.mdx @@ -1104,16 +1104,14 @@ await expect(page.locator('body')).toMatchAriaSnapshot({ name: 'body.aria.yml' } Added in: v1.20locatorAssertions.not -Makes the assertion check for the opposite condition. For example, this code tests that the Locator doesn't contain text `"error"`: - -```js -await expect(locator).not.toContainText('error'); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the Locator doesn't contain text `"error"`: + ```js -expect(locator).not +await expect(locator).not.toContainText('error'); ``` **Type** diff --git a/nodejs/docs/api/class-pageassertions.mdx b/nodejs/docs/api/class-pageassertions.mdx index 5e936e8235e..a9b23b221a1 100644 --- a/nodejs/docs/api/class-pageassertions.mdx +++ b/nodejs/docs/api/class-pageassertions.mdx @@ -260,16 +260,14 @@ await expect(page).toHaveURL(url => { Added in: v1.20pageAssertions.not -Makes the assertion check for the opposite condition. For example, this code tests that the page URL doesn't contain `"error"`: - -```js -await expect(page).not.toHaveURL('error'); -``` +Makes the assertion check for the opposite condition. **Usage** +For example, this code tests that the page URL doesn't contain `"error"`: + ```js -expect(page).not +await expect(page).not.toHaveURL('error'); ``` **Type** diff --git a/nodejs/docs/api/class-request.mdx b/nodejs/docs/api/class-request.mdx index a44b77db288..c238e30c909 100644 --- a/nodejs/docs/api/class-request.mdx +++ b/nodejs/docs/api/class-request.mdx @@ -43,6 +43,25 @@ await request.allHeaders(); --- +### existingResponse {#request-existing-response} + +Added in: v1.59request.existingResponse + +Returns the [Response] object if the response has already been received, `null` otherwise. + +Unlike [request.response()](/api/class-request.mdx#request-response), this method does not wait for the response to arrive. It returns immediately with the response object if the response has been received, or `null` if the response has not been received yet. + +**Usage** + +```js +request.existingResponse(); +``` + +**Returns** +- [null] | [Response]# + +--- + ### failure {#request-failure} Added before v1.9request.failure diff --git a/nodejs/docs/api/class-video.mdx b/nodejs/docs/api/class-video.mdx index 58bf6d9739c..ecade42bdfd 100644 --- a/nodejs/docs/api/class-video.mdx +++ b/nodejs/docs/api/class-video.mdx @@ -18,8 +18,7 @@ Alternatively, you can use [video.start()](/api/class-video.mdx#video-start) and ```js await page.video().start(); // ... perform actions ... -await page.video().stop(); -await page.video().saveAs('video.webm'); +await page.video().stop({ path: 'video.webm' }); ``` @@ -118,14 +117,21 @@ await page.video().stop({ path: 'video.webm' }); Added in: v1.59video.stop -Stops video recording started with [video.start()](/api/class-video.mdx#video-start). Use [video.path()](/api/class-video.mdx#video-path) or [video.saveAs()](/api/class-video.mdx#video-save-as) methods to access the video file. +Stops video recording started with [video.start()](/api/class-video.mdx#video-start). **Usage** ```js await video.stop(); +await video.stop(options); ``` +**Arguments** +- `options` [Object] *(optional)* + - `path` [string] *(optional)*# + + Path where the video should be saved. + **Returns** - [Promise]<[void]># diff --git a/nodejs/docs/debug.mdx b/nodejs/docs/debug.mdx index 3bc8504bab1..891601de094 100644 --- a/nodejs/docs/debug.mdx +++ b/nodejs/docs/debug.mdx @@ -30,7 +30,7 @@ You can also edit the locators in VS Code and Playwright will show you the chang ### Picking a Locator -Pick a [locator](./locators.mdx) and copy it into your test file by clicking the **Pick locator** button form the testing sidebar. Then in the browser 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. +Pick a [locator](./locators.mdx) and copy it into your test file by clicking the **Pick locator** button from the testing sidebar. Then in the browser 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. Pick locators diff --git a/python/docs/api/class-request.mdx b/python/docs/api/class-request.mdx index 5dcc69043a4..99b10dc859a 100644 --- a/python/docs/api/class-request.mdx +++ b/python/docs/api/class-request.mdx @@ -136,6 +136,25 @@ request.sizes() ## Properties +### existing_response {#request-existing-response} + +Added in: v1.59request.existing_response + +Returns the [Response] object if the response has already been received, `null` otherwise. + +Unlike [request.response()](/api/class-request.mdx#request-response), this method does not wait for the response to arrive. It returns immediately with the response object if the response has been received, or `null` if the response has not been received yet. + +**Usage** + +```python +request.existing_response +``` + +**Returns** +- [NoneType] | [Response]# + +--- + ### failure {#request-failure} Added before v1.9request.failure diff --git a/python/docs/api/class-video.mdx b/python/docs/api/class-video.mdx index 29f55e40098..0f22d0507e9 100644 --- a/python/docs/api/class-video.mdx +++ b/python/docs/api/class-video.mdx @@ -48,8 +48,7 @@ Alternatively, you can use [video.start()](/api/class-video.mdx#video-start) and ```py page.video.start() # ... perform actions ... -page.video.stop() -page.video.save_as("video.webm") +page.video.stop(path="video.webm") ``` @@ -58,8 +57,7 @@ page.video.save_as("video.webm") ```py await page.video.start() # ... perform actions ... -await page.video.stop() -await page.video.save_as("video.webm") +await page.video.stop(path="video.webm") ``` @@ -182,14 +180,20 @@ await page.video.stop(path="video.webm") Added in: v1.59video.stop -Stops video recording started with [video.start()](/api/class-video.mdx#video-start). Use [video.path()](/api/class-video.mdx#video-path) or [video.save_as()](/api/class-video.mdx#video-save-as) methods to access the video file. +Stops video recording started with [video.start()](/api/class-video.mdx#video-start). **Usage** ```python video.stop() +video.stop(**kwargs) ``` +**Arguments** +- `path` [Union]\[[str], [pathlib.Path]\] *(optional)*# + + Path where the video should be saved. + **Returns** - [NoneType]#