From fae76028a44f4088730b7ec13d33ae6c2bf56dd5 Mon Sep 17 00:00:00 2001
From: "microsoft-playwright-automation[bot]"
<203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>
Date: Wed, 15 Apr 2026 10:46:02 +0000
Subject: [PATCH] feat(roll): roll to ToT Playwright (15-04-26)
---
dotnet/docs/api/class-apirequestcontext.mdx | 17 +++++
dotnet/docs/api/class-browsercontext.mdx | 9 ---
dotnet/docs/api/class-locator.mdx | 27 +++++++-
dotnet/docs/api/class-locatorassertions.mdx | 3 +
dotnet/docs/api/class-page.mdx | 26 ++++---
dotnet/docs/api/class-tracing.mdx | 54 +++++++++++++++
java/docs/api/class-apirequestcontext.mdx | 17 +++++
java/docs/api/class-browsercontext.mdx | 9 ---
java/docs/api/class-locator.mdx | 26 ++++++-
java/docs/api/class-locatorassertions.mdx | 3 +
java/docs/api/class-page.mdx | 26 ++++---
java/docs/api/class-tracing.mdx | 54 +++++++++++++++
java/docs/ci.mdx | 12 ++--
java/docs/docker.mdx | 16 ++---
java/docs/intro.mdx | 2 +-
java/docs/test-runners.mdx | 4 +-
nodejs/docs/api/class-androiddevice.mdx | 18 -----
nodejs/docs/api/class-apirequestcontext.mdx | 16 +++++
nodejs/docs/api/class-browser.mdx | 36 ----------
nodejs/docs/api/class-browsercontext.mdx | 9 ---
nodejs/docs/api/class-browsertype.mdx | 66 +++++++++---------
nodejs/docs/api/class-locator.mdx | 55 ++++++++++++++-
nodejs/docs/api/class-locatorassertions.mdx | 3 +
nodejs/docs/api/class-page.mdx | 26 ++++---
nodejs/docs/api/class-tracing.mdx | 54 +++++++++++++++
nodejs/docs/api/class-worker.mdx | 24 +++++++
python/docs/api/class-apirequestcontext.mdx | 16 +++++
python/docs/api/class-browsercontext.mdx | 8 ---
python/docs/api/class-locator.mdx | 25 ++++++-
python/docs/api/class-locatorassertions.mdx | 3 +
python/docs/api/class-page.mdx | 25 ++++---
python/docs/api/class-tracing.mdx | 76 +++++++++++++++++++++
src/components/GitHubStarButton/index.tsx | 2 +-
33 files changed, 586 insertions(+), 181 deletions(-)
diff --git a/dotnet/docs/api/class-apirequestcontext.mdx b/dotnet/docs/api/class-apirequestcontext.mdx
index 6b05b48d15..2472f5c480 100644
--- a/dotnet/docs/api/class-apirequestcontext.mdx
+++ b/dotnet/docs/api/class-apirequestcontext.mdx
@@ -565,6 +565,23 @@ await ApiRequestContext.StorageStateAsync(options);
**Returns**
- [string]#
+---
+
+## Properties
+
+### Tracing {#api-request-context-tracing}
+
+Added in: v1.60apiRequestContext.Tracing
+
+**Usage**
+
+```csharp
+ApiRequestContext.Tracing
+```
+
+**Type**
+- [Tracing]
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/dotnet/docs/api/class-browsercontext.mdx b/dotnet/docs/api/class-browsercontext.mdx
index e59d575abb..561adf8fc1 100644
--- a/dotnet/docs/api/class-browsercontext.mdx
+++ b/dotnet/docs/api/class-browsercontext.mdx
@@ -305,15 +305,6 @@ await page.GetByRole(AriaRole.Button).ClickAsync();
- `callback` [Action]<BindingSource, T, [TResult]>#
Callback function that will be called in the Playwright's context.
-- `options` `BrowserContextExposeBindingOptions?` *(optional)*
- - `Handle` [bool]? *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
diff --git a/dotnet/docs/api/class-locator.mdx b/dotnet/docs/api/class-locator.mdx
index f6ba02c476..3cdda3e6e3 100644
--- a/dotnet/docs/api/class-locator.mdx
+++ b/dotnet/docs/api/class-locator.mdx
@@ -1340,6 +1340,23 @@ await Expect(Page.GetByTitle("Issues count")).toHaveText("25 issues");
---
+### HideHighlightAsync {#locator-hide-highlight}
+
+Added in: v1.60locator.HideHighlightAsync
+
+Hide element highlight added with Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses [Locator.HighlightAsync()](/api/class-locator.mdx#locator-highlight).
+
+**Usage**
+
+```csharp
+await Locator.HideHighlightAsync();
+```
+
+**Returns**
+- [void]#
+
+---
+
### HighlightAsync {#locator-highlight}
Added in: v1.20locator.HighlightAsync
@@ -1349,11 +1366,17 @@ Highlight the corresponding element(s) on the screen. Useful for debugging, don'
**Usage**
```csharp
-await Locator.HighlightAsync();
+await Locator.HighlightAsync(options);
```
+**Arguments**
+- `options` `LocatorHighlightOptions?` *(optional)*
+ - `Style` [string]? *(optional)* Added in: v1.60#
+
+ Additional inline CSS applied to the highlight overlay, e.g. `"outline: 2px dashed red"`.
+
**Returns**
-- [void]#
+- [Disposable]#
---
diff --git a/dotnet/docs/api/class-locatorassertions.mdx b/dotnet/docs/api/class-locatorassertions.mdx
index 3e18d16736..a1d9edb7c5 100644
--- a/dotnet/docs/api/class-locatorassertions.mdx
+++ b/dotnet/docs/api/class-locatorassertions.mdx
@@ -630,6 +630,9 @@ await Expect(locator).ToHaveCSSAsync("display", "flex");
CSS property value.
- `options` `LocatorAssertionsToHaveCSSOptions?` *(optional)*
+ - `Pseudo` `enum PseudoElement { Before, After }?` *(optional)* Added in: v1.60#
+
+ Pseudo-element to read computed styles from.
- `Timeout` [float]? *(optional)* Added in: v1.18#
Time to retry the assertion for in milliseconds. Defaults to `5000`.
diff --git a/dotnet/docs/api/class-page.mdx b/dotnet/docs/api/class-page.mdx
index 626cb7a5c7..ecb4dee3cf 100644
--- a/dotnet/docs/api/class-page.mdx
+++ b/dotnet/docs/api/class-page.mdx
@@ -702,15 +702,6 @@ class PageExamples
- `callback` [Action]<BindingSource, T, [TResult]>#
Callback function that will be called in the Playwright's context.
-- `options` `PageExposeBindingOptions?` *(optional)*
- - `Handle` [bool]? *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
@@ -1322,6 +1313,23 @@ await Page.GotoAsync(url, options);
---
+### HideHighlightAsync {#page-hide-highlight}
+
+Added in: v1.60page.HideHighlightAsync
+
+Hide all locator highlight overlays previously added by [Locator.HighlightAsync()](/api/class-locator.mdx#locator-highlight) on this page.
+
+**Usage**
+
+```csharp
+await Page.HideHighlightAsync();
+```
+
+**Returns**
+- [void]#
+
+---
+
### IsClosed {#page-is-closed}
Added before v1.9page.IsClosed
diff --git a/dotnet/docs/api/class-tracing.mdx b/dotnet/docs/api/class-tracing.mdx
index 13e2f163a3..ee6eba9625 100644
--- a/dotnet/docs/api/class-tracing.mdx
+++ b/dotnet/docs/api/class-tracing.mdx
@@ -212,6 +212,43 @@ await context.Tracing.StopChunkAsync(new()
---
+### StartHarAsync {#tracing-start-har}
+
+Added in: v1.60tracing.StartHarAsync
+
+Start recording a HAR (HTTP Archive) of network activity in this context. The HAR file is written to disk when [Tracing.StopHarAsync()](/api/class-tracing.mdx#tracing-stop-har) is called, or when the returned [Disposable] is disposed.
+
+Only one HAR recording can be active at a time per [BrowserContext].
+
+**Usage**
+
+```csharp
+await context.Tracing.StartHarAsync("trace.har");
+var page = await context.NewPageAsync();
+await page.GotoAsync("https://playwright.dev");
+await context.Tracing.StopHarAsync();
+```
+
+**Arguments**
+- `path` [string]#
+
+ Path on the filesystem to write the HAR file to. If the file name ends with `.zip`, the HAR is saved as a zip archive with response bodies attached as separate files.
+- `options` `TracingStartHarOptions?` *(optional)*
+ - `Content` `enum HarContentPolicy { Omit, Embed, Attach }?` *(optional)*#
+
+ Optional setting to control resource content management. If `omit` is specified, content is not persisted. If `attach` is specified, resources are persisted as separate files or entries in the ZIP archive. If `embed` is specified, content is stored inline the HAR file as per HAR specification. Defaults to `attach` for `.zip` output files and to `embed` for all other file extensions.
+ - `Mode` `enum HarMode { Full, Minimal }?` *(optional)*#
+
+ When set to `minimal`, only record information necessary for routing from HAR. This omits sizes, timing, page, cookies, security and other types of HAR information that are not used when replaying from HAR. Defaults to `full`.
+ - `UrlFilter|UrlFilterRegex` [string]? | [Regex]? *(optional)*#
+
+ A glob or regex pattern to filter requests that are stored in the HAR. Defaults to none.
+
+**Returns**
+- [Disposable]#
+
+---
+
### StopAsync {#tracing-stop}
Added in: v1.12tracing.StopAsync
@@ -256,6 +293,23 @@ await Tracing.StopChunkAsync(options);
**Returns**
- [void]#
+---
+
+### StopHarAsync {#tracing-stop-har}
+
+Added in: v1.60tracing.StopHarAsync
+
+Stop HAR recording and save the HAR file to the path given to [Tracing.StartHarAsync()](/api/class-tracing.mdx#tracing-start-har).
+
+**Usage**
+
+```csharp
+await Tracing.StopHarAsync();
+```
+
+**Returns**
+- [void]#
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/java/docs/api/class-apirequestcontext.mdx b/java/docs/api/class-apirequestcontext.mdx
index 3cfc10c8fd..4e11fe1a63 100644
--- a/java/docs/api/class-apirequestcontext.mdx
+++ b/java/docs/api/class-apirequestcontext.mdx
@@ -306,6 +306,23 @@ APIRequestContext.storageState(options);
**Returns**
- [String]#
+---
+
+## Properties
+
+### tracing() {#api-request-context-tracing}
+
+Added in: v1.60apiRequestContext.tracing()
+
+**Usage**
+
+```java
+APIRequestContext.tracing()
+```
+
+**Returns**
+- [Tracing]
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/java/docs/api/class-browsercontext.mdx b/java/docs/api/class-browsercontext.mdx
index eb9eb42845..b208f5fad3 100644
--- a/java/docs/api/class-browsercontext.mdx
+++ b/java/docs/api/class-browsercontext.mdx
@@ -311,15 +311,6 @@ public class Example {
- `callback` `BindingCallback`#
Callback function that will be called in the Playwright's context.
-- `options` `BrowserContext.ExposeBindingOptions` *(optional)*
- - `setHandle` [boolean] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
diff --git a/java/docs/api/class-locator.mdx b/java/docs/api/class-locator.mdx
index 85e9a81665..ecd9c40722 100644
--- a/java/docs/api/class-locator.mdx
+++ b/java/docs/api/class-locator.mdx
@@ -1340,6 +1340,23 @@ assertThat(page.getByTitle("Issues count")).hasText("25 issues");
---
+### hideHighlight {#locator-hide-highlight}
+
+Added in: v1.60locator.hideHighlight
+
+Hide element highlight added with Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses [Locator.highlight()](/api/class-locator.mdx#locator-highlight).
+
+**Usage**
+
+```java
+Locator.hideHighlight();
+```
+
+**Returns**
+- [void]#
+
+---
+
### highlight {#locator-highlight}
Added in: v1.20locator.highlight
@@ -1350,10 +1367,17 @@ Highlight the corresponding element(s) on the screen. Useful for debugging, don'
```java
Locator.highlight();
+Locator.highlight(options);
```
+**Arguments**
+- `options` `Locator.HighlightOptions` *(optional)*
+ - `setStyle` [String] *(optional)* Added in: v1.60#
+
+ Additional inline CSS applied to the highlight overlay, e.g. `"outline: 2px dashed red"`.
+
**Returns**
-- [void]#
+- [Disposable]#
---
diff --git a/java/docs/api/class-locatorassertions.mdx b/java/docs/api/class-locatorassertions.mdx
index 692785963f..b92765d243 100644
--- a/java/docs/api/class-locatorassertions.mdx
+++ b/java/docs/api/class-locatorassertions.mdx
@@ -348,6 +348,9 @@ assertThat(page.getByRole(AriaRole.BUTTON)).hasCSS("display", "flex");
CSS property value.
- `options` `LocatorAssertions.HasCSSOptions` *(optional)*
+ - `setPseudo` `enum PseudoElement { BEFORE, AFTER }` *(optional)* Added in: v1.60#
+
+ Pseudo-element to read computed styles from.
- `setTimeout` [double] *(optional)* Added in: v1.18#
Time to retry the assertion for in milliseconds. Defaults to `5000`.
diff --git a/java/docs/api/class-page.mdx b/java/docs/api/class-page.mdx
index 6bc54606e9..df6091ba86 100644
--- a/java/docs/api/class-page.mdx
+++ b/java/docs/api/class-page.mdx
@@ -706,15 +706,6 @@ public class Example {
- `callback` `BindingCallback`#
Callback function that will be called in the Playwright's context.
-- `options` `Page.ExposeBindingOptions` *(optional)*
- - `setHandle` [boolean] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
@@ -1274,6 +1265,23 @@ Page.goForward(options);
---
+### hideHighlight {#page-hide-highlight}
+
+Added in: v1.60page.hideHighlight
+
+Hide all locator highlight overlays previously added by [Locator.highlight()](/api/class-locator.mdx#locator-highlight) on this page.
+
+**Usage**
+
+```java
+Page.hideHighlight();
+```
+
+**Returns**
+- [void]#
+
+---
+
### isClosed {#page-is-closed}
Added before v1.9page.isClosed
diff --git a/java/docs/api/class-tracing.mdx b/java/docs/api/class-tracing.mdx
index c045d85bd0..7a81048b18 100644
--- a/java/docs/api/class-tracing.mdx
+++ b/java/docs/api/class-tracing.mdx
@@ -191,6 +191,43 @@ context.tracing().stopChunk(new Tracing.StopChunkOptions()
---
+### startHar {#tracing-start-har}
+
+Added in: v1.60tracing.startHar
+
+Start recording a HAR (HTTP Archive) of network activity in this context. The HAR file is written to disk when [Tracing.stopHar()](/api/class-tracing.mdx#tracing-stop-har) is called, or when the returned [Disposable] is disposed.
+
+Only one HAR recording can be active at a time per [BrowserContext].
+
+**Usage**
+
+```java
+context.tracing().startHar(Paths.get("trace.har"));
+Page page = context.newPage();
+page.navigate("https://playwright.dev");
+context.tracing().stopHar();
+```
+
+**Arguments**
+- `path` [Path]#
+
+ Path on the filesystem to write the HAR file to. If the file name ends with `.zip`, the HAR is saved as a zip archive with response bodies attached as separate files.
+- `options` `Tracing.StartHarOptions` *(optional)*
+ - `setContent` `enum HarContentPolicy { OMIT, EMBED, ATTACH }` *(optional)*#
+
+ Optional setting to control resource content management. If `omit` is specified, content is not persisted. If `attach` is specified, resources are persisted as separate files or entries in the ZIP archive. If `embed` is specified, content is stored inline the HAR file as per HAR specification. Defaults to `attach` for `.zip` output files and to `embed` for all other file extensions.
+ - `setMode` `enum HarMode { FULL, MINIMAL }` *(optional)*#
+
+ When set to `minimal`, only record information necessary for routing from HAR. This omits sizes, timing, page, cookies, security and other types of HAR information that are not used when replaying from HAR. Defaults to `full`.
+ - `setUrlFilter` [String] | [Pattern] *(optional)*#
+
+ A glob or regex pattern to filter requests that are stored in the HAR. Defaults to none.
+
+**Returns**
+- [Disposable]#
+
+---
+
### stop {#tracing-stop}
Added in: v1.12tracing.stop
@@ -237,6 +274,23 @@ Tracing.stopChunk(options);
**Returns**
- [void]#
+---
+
+### stopHar {#tracing-stop-har}
+
+Added in: v1.60tracing.stopHar
+
+Stop HAR recording and save the HAR file to the path given to [Tracing.startHar()](/api/class-tracing.mdx#tracing-start-har).
+
+**Usage**
+
+```java
+Tracing.stopHar();
+```
+
+**Returns**
+- [void]#
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/java/docs/ci.mdx b/java/docs/ci.mdx
index 088910b838..ba5f47aa02 100644
--- a/java/docs/ci.mdx
+++ b/java/docs/ci.mdx
@@ -75,7 +75,7 @@ jobs:
name: 'Playwright Tests'
runs-on: ubuntu-latest
container:
- image: mcr.microsoft.com/playwright/java:v1.58.0-noble
+ image: mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble
+container: mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble
+ - image: mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble' } }
+ agent { docker { image 'mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble
+image: mcr.microsoft.com/playwright/java:v1.59.0-noble
```
### GitLab CI
@@ -224,7 +224,7 @@ stages:
tests:
stage: test
- image: mcr.microsoft.com/playwright/java:v1.58.0-noble
+ image: mcr.microsoft.com/playwright/java:v1.59.0-noble
script:
...
```
diff --git a/java/docs/docker.mdx b/java/docs/docker.mdx
index bbb23e8da4..7d2149cd3d 100644
--- a/java/docs/docker.mdx
+++ b/java/docs/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.58.0-noble
+docker pull mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble /bin/bash
+docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:v1.59.0-noble /bin/bash
```
#### Crawling and scraping
@@ -42,7 +42,7 @@ docker run -it --rm --ipc=host mcr.microsoft.com/playwright/java:v1.58.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.58.0-noble /bin/bash
+docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright/java:v1.59.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.58.0-noble /bin/sh -c "npx -y playwright@1.58.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.59.0-noble /bin/sh -c "npx -y playwright@1.59.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.58.0-noble /bin/sh -c "npx -y playwright@1.58.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.59.0-noble /bin/sh -c "npx -y playwright@1.59.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.
@@ -140,9 +140,9 @@ Once this is enabled you can open the port specified in a new browser tab and yo
See [all available image tags].
We currently publish images with the following tags:
-- `:v1.58.0` - Playwright v1.58.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.58.0-noble` - Playwright v1.58.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
-- `:v1.58.0-jammy` - Playwright v1.58.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
+- `:v1.59.0` - Playwright v1.59.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.59.0-noble` - Playwright v1.59.0 release docker image based on Ubuntu 24.04 LTS (Noble Numbat).
+- `:v1.59.0-jammy` - Playwright v1.59.0 release docker image based on Ubuntu 22.04 LTS (Jammy Jellyfish).
:::note
diff --git a/java/docs/intro.mdx b/java/docs/intro.mdx
index 82b791b8b5..4891ca3823 100644
--- a/java/docs/intro.mdx
+++ b/java/docs/intro.mdx
@@ -58,7 +58,7 @@ public class App {
com.microsoft.playwright
playwright
- 1.58.0
+ 1.59.0
diff --git a/java/docs/test-runners.mdx b/java/docs/test-runners.mdx
index f2c977d728..457c4e4e0a 100644
--- a/java/docs/test-runners.mdx
+++ b/java/docs/test-runners.mdx
@@ -198,7 +198,7 @@ repositories {
}
dependencies {
- implementation 'com.microsoft.playwright:playwright:1.58.0'
+ implementation 'com.microsoft.playwright:playwright:1.59.0'
}
application {
@@ -231,7 +231,7 @@ repositories {
}
dependencies {
- implementation("com.microsoft.playwright:playwright:1.58.0")
+ implementation("com.microsoft.playwright:playwright:1.59.0")
}
application {
diff --git a/nodejs/docs/api/class-androiddevice.mdx b/nodejs/docs/api/class-androiddevice.mdx
index 00fc63052c..eb46249928 100644
--- a/nodejs/docs/api/class-androiddevice.mdx
+++ b/nodejs/docs/api/class-androiddevice.mdx
@@ -374,24 +374,6 @@ await androidDevice.launchBrowser(options);
- `userAgent` [string] *(optional)*#
Specific user agent to use in this context.
- - `videoSize` [Object] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-androiddevice.mdx#android-device-launch-browser-option-record-video) instead.
- :::
-
- - `width` [number]
-
- Video frame width.
- - `height` [number]
-
- Video frame height.
- - `videosPath` [string] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-androiddevice.mdx#android-device-launch-browser-option-record-video) instead.
- :::
-
- `viewport` [null] | [Object] *(optional)*#
- `width` [number]
diff --git a/nodejs/docs/api/class-apirequestcontext.mdx b/nodejs/docs/api/class-apirequestcontext.mdx
index 6a0b78185f..44af02a849 100644
--- a/nodejs/docs/api/class-apirequestcontext.mdx
+++ b/nodejs/docs/api/class-apirequestcontext.mdx
@@ -623,6 +623,22 @@ await apiRequestContext.storageState(options);
+---
+
+## Properties
+
+### tracing {#api-request-context-tracing}
+
+Added in: v1.60apiRequestContext.tracing
+
+**Usage**
+
+```js
+apiRequestContext.tracing
+```
+
+**Type**
+- [Tracing]
[Android]: /api/class-android.mdx "Android"
diff --git a/nodejs/docs/api/class-browser.mdx b/nodejs/docs/api/class-browser.mdx
index 9e35ed9804..c7b82022da 100644
--- a/nodejs/docs/api/class-browser.mdx
+++ b/nodejs/docs/api/class-browser.mdx
@@ -454,24 +454,6 @@ If directly using this method to create [BrowserContext]s, it is best practice t
- `userAgent` [string] *(optional)*#
Specific user agent to use in this context.
- - `videoSize` [Object] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browser.mdx#browser-new-context-option-record-video) instead.
- :::
-
- - `width` [number]
-
- Video frame width.
- - `height` [number]
-
- Video frame height.
- - `videosPath` [string] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browser.mdx#browser-new-context-option-record-video) instead.
- :::
-
- `viewport` [null] | [Object] *(optional)*#
- `width` [number]
@@ -760,24 +742,6 @@ await browser.newPage(options);
- `userAgent` [string] *(optional)*#
Specific user agent to use in this context.
- - `videoSize` [Object] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browser.mdx#browser-new-page-option-record-video) instead.
- :::
-
- - `width` [number]
-
- Video frame width.
- - `height` [number]
-
- Video frame height.
- - `videosPath` [string] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browser.mdx#browser-new-page-option-record-video) instead.
- :::
-
- `viewport` [null] | [Object] *(optional)*#
- `width` [number]
diff --git a/nodejs/docs/api/class-browsercontext.mdx b/nodejs/docs/api/class-browsercontext.mdx
index 3a226f0e95..c6c5112c37 100644
--- a/nodejs/docs/api/class-browsercontext.mdx
+++ b/nodejs/docs/api/class-browsercontext.mdx
@@ -318,15 +318,6 @@ const { webkit } = require('playwright'); // Or 'chromium' or 'firefox'.
- `callback` [function]#
Callback function that will be called in the Playwright's context.
-- `options` [Object] *(optional)*
- - `handle` [boolean] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Promise]<[Disposable]>#
diff --git a/nodejs/docs/api/class-browsertype.mdx b/nodejs/docs/api/class-browsertype.mdx
index 4dca4f3938..97a333dae9 100644
--- a/nodejs/docs/api/class-browsertype.mdx
+++ b/nodejs/docs/api/class-browsertype.mdx
@@ -65,14 +65,6 @@ await browserType.connect(endpoint, options);
- `headers` [Object]<[string], [string]> *(optional)* Added in: v1.11#
Additional HTTP headers to be sent with web socket connect request. Optional.
- - `logger` [Logger] *(optional)* Added in: v1.14#
-
- :::warning[Deprecated]
- The logs received by the logger are incomplete. Please use tracing instead.
- :::
-
-
- Logger sink for Playwright logging. Optional.
- `slowMo` [number] *(optional)* Added in: v1.10#
Slows down Playwright operations by the specified amount of milliseconds. Useful so that you can see what is going on. Defaults to 0.
@@ -127,14 +119,6 @@ const page = defaultContext.pages()[0];
- `isLocal` [boolean] *(optional)* Added in: v1.58#
Tells Playwright that it runs on the same host as the CDP server. It will enable certain optimizations that rely upon the file system being the same between Playwright and the Browser.
- - `logger` [Logger] *(optional)* Added in: v1.14#
-
- :::warning[Deprecated]
- The logs received by the logger are incomplete. Please use tracing instead.
- :::
-
-
- Logger sink for Playwright logging. Optional.
- `slowMo` [number] *(optional)* Added in: v1.11#
Slows down Playwright operations by the specified amount of milliseconds. Useful so that you can see what is going on. Defaults to 0.
@@ -147,6 +131,38 @@ const page = defaultContext.pages()[0];
---
+### connectToWorker {#browser-type-connect-to-worker}
+
+Added in: v1.60browserType.connectToWorker
+
+This method attaches Playwright to an existing JavaScript engine exposing Chrome DevTools Protocol, for example to a Node.js process or an Electron application.
+
+:::note
+
+This is only supported on `chromium`.
+:::
+
+**Usage**
+
+```js
+const worker = await playwright.chromium.connectToWorker('http://localhost:9229');
+const global = await worker.evaluate(() => globalThis);
+```
+
+**Arguments**
+- `endpoint` [string]#
+
+ A CDP websocket endpoint or http url to connect to. For example `http://localhost:9229/` or `ws://127.0.0.1:9229/something`.
+- `options` [Object] *(optional)*
+ - `timeout` [number] *(optional)*#
+
+ Maximum time in milliseconds to wait for the connection to be established. Defaults to `30000` (30 seconds). Pass `0` to disable timeout.
+
+**Returns**
+- [Promise]<[Worker]>#
+
+---
+
### executablePath {#browser-type-executable-path}
Added before v1.9browserType.executablePath
@@ -567,24 +583,6 @@ await browserType.launchPersistentContext(userDataDir, options);
- `userAgent` [string] *(optional)*#
Specific user agent to use in this context.
- - `videoSize` [Object] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browsertype.mdx#browser-type-launch-persistent-context-option-record-video) instead.
- :::
-
- - `width` [number]
-
- Video frame width.
- - `height` [number]
-
- Video frame height.
- - `videosPath` [string] *(optional)*#
-
- :::warning[Deprecated]
- Use [recordVideo](/api/class-browsertype.mdx#browser-type-launch-persistent-context-option-record-video) instead.
- :::
-
- `viewport` [null] | [Object] *(optional)*#
- `width` [number]
diff --git a/nodejs/docs/api/class-locator.mdx b/nodejs/docs/api/class-locator.mdx
index 8b748b7d81..9a820312e2 100644
--- a/nodejs/docs/api/class-locator.mdx
+++ b/nodejs/docs/api/class-locator.mdx
@@ -111,6 +111,30 @@ const button = page.getByRole('button').and(page.getByTitle('Subscribe'));
---
+### ariaRef {#locator-aria-ref}
+
+Added in: v1.60locator.ariaRef
+
+Returns the aria ref (for example `e1`, `e2`) assigned to this element by the most recent aria snapshot, or `null` if no ref has been assigned yet. Call [locator.ariaSnapshot()](/api/class-locator.mdx#locator-aria-snapshot) or [page.ariaSnapshot()](/api/class-page.mdx#page-aria-snapshot) before this method to ensure a ref is available.
+
+**Usage**
+
+```js
+await locator.ariaRef();
+await locator.ariaRef(options);
+```
+
+**Arguments**
+- `options` [Object] *(optional)*
+ - `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.
+
+**Returns**
+- [Promise]<[null] | [string]>#
+
+---
+
### ariaSnapshot {#locator-aria-snapshot}
Added in: v1.49locator.ariaSnapshot
@@ -1344,6 +1368,23 @@ await expect(page.getByTitle('Issues count')).toHaveText('25 issues');
---
+### hideHighlight {#locator-hide-highlight}
+
+Added in: v1.60locator.hideHighlight
+
+Hide element highlight added with Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses [locator.highlight()](/api/class-locator.mdx#locator-highlight).
+
+**Usage**
+
+```js
+await locator.hideHighlight();
+```
+
+**Returns**
+- [Promise]<[void]>#
+
+---
+
### highlight {#locator-highlight}
Added in: v1.20locator.highlight
@@ -1354,10 +1395,22 @@ Highlight the corresponding element(s) on the screen. Useful for debugging, don'
```js
await locator.highlight();
+await locator.highlight(options);
```
+**Arguments**
+- `options` [Object] *(optional)*
+ - `style` [string] | [Object]<[string], [Object]> *(optional)* Added in: v1.60#
+
+ Inline CSS applied to the highlight overlay, e.g.
+
+ ```js
+ await locator.highlight('outline: 2px dashed red');
+ await locator.highlight({ color: 'red' });
+ ```
+
**Returns**
-- [Promise]<[void]>#
+- [Promise]<[Disposable]>#
---
diff --git a/nodejs/docs/api/class-locatorassertions.mdx b/nodejs/docs/api/class-locatorassertions.mdx
index b97935f16e..e7954b67ac 100644
--- a/nodejs/docs/api/class-locatorassertions.mdx
+++ b/nodejs/docs/api/class-locatorassertions.mdx
@@ -655,6 +655,9 @@ await expect(locator).toHaveCSS('display', 'flex');
CSS property value.
- `options` [Object] *(optional)*
+ - `pseudo` "before" | "after" *(optional)* Added in: v1.60#
+
+ Pseudo-element to read computed styles from.
- `timeout` [number] *(optional)* Added in: v1.18#
Time to retry the assertion for in milliseconds. Defaults to `timeout` in `TestConfig.expect`.
diff --git a/nodejs/docs/api/class-page.mdx b/nodejs/docs/api/class-page.mdx
index 758e843c2b..2a663f0a9a 100644
--- a/nodejs/docs/api/class-page.mdx
+++ b/nodejs/docs/api/class-page.mdx
@@ -719,15 +719,6 @@ const { webkit } = require('playwright'); // Or 'chromium' or 'firefox'.
- `callback` [function]#
Callback function that will be called in the Playwright's context.
-- `options` [Object] *(optional)*
- - `handle` [boolean] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Promise]<[Disposable]>#
@@ -1315,6 +1306,23 @@ await page.goto(url, options);
---
+### hideHighlight {#page-hide-highlight}
+
+Added in: v1.60page.hideHighlight
+
+Hide all locator highlight overlays previously added by [locator.highlight()](/api/class-locator.mdx#locator-highlight) on this page.
+
+**Usage**
+
+```js
+await page.hideHighlight();
+```
+
+**Returns**
+- [Promise]<[void]>#
+
+---
+
### isClosed {#page-is-closed}
Added before v1.9page.isClosed
diff --git a/nodejs/docs/api/class-tracing.mdx b/nodejs/docs/api/class-tracing.mdx
index ae3b6105de..add9d8999c 100644
--- a/nodejs/docs/api/class-tracing.mdx
+++ b/nodejs/docs/api/class-tracing.mdx
@@ -181,6 +181,43 @@ await context.tracing.stopChunk({ path: 'trace2.zip' });
---
+### startHar {#tracing-start-har}
+
+Added in: v1.60tracing.startHar
+
+Start recording a HAR (HTTP Archive) of network activity in this context. The HAR file is written to disk when [tracing.stopHar()](/api/class-tracing.mdx#tracing-stop-har) is called, or when the returned [Disposable] is disposed.
+
+Only one HAR recording can be active at a time per [BrowserContext].
+
+**Usage**
+
+```js
+await context.tracing.startHar('trace.har');
+const page = await context.newPage();
+await page.goto('https://playwright.dev');
+await context.tracing.stopHar();
+```
+
+**Arguments**
+- `path` [string]#
+
+ Path on the filesystem to write the HAR file to. If the file name ends with `.zip`, the HAR is saved as a zip archive with response bodies attached as separate files.
+- `options` [Object] *(optional)*
+ - `content` "omit" | "embed" | "attach" *(optional)*#
+
+ Optional setting to control resource content management. If `omit` is specified, content is not persisted. If `attach` is specified, resources are persisted as separate files or entries in the ZIP archive. If `embed` is specified, content is stored inline the HAR file as per HAR specification. Defaults to `attach` for `.zip` output files and to `embed` for all other file extensions.
+ - `mode` "full" | "minimal" *(optional)*#
+
+ When set to `minimal`, only record information necessary for routing from HAR. This omits sizes, timing, page, cookies, security and other types of HAR information that are not used when replaying from HAR. Defaults to `full`.
+ - `urlFilter` [string] | [RegExp] *(optional)*#
+
+ A glob or regex pattern to filter requests that are stored in the HAR. Defaults to none.
+
+**Returns**
+- [Promise]<[Disposable]>#
+
+---
+
### stop {#tracing-stop}
Added in: v1.12tracing.stop
@@ -227,6 +264,23 @@ await tracing.stopChunk(options);
**Returns**
- [Promise]<[void]>#
+---
+
+### stopHar {#tracing-stop-har}
+
+Added in: v1.60tracing.stopHar
+
+Stop HAR recording and save the HAR file to the path given to [tracing.startHar()](/api/class-tracing.mdx#tracing-start-har).
+
+**Usage**
+
+```js
+await tracing.stopHar();
+```
+
+**Returns**
+- [Promise]<[void]>#
+
[Android]: /api/class-android.mdx "Android"
[AndroidDevice]: /api/class-androiddevice.mdx "AndroidDevice"
diff --git a/nodejs/docs/api/class-worker.mdx b/nodejs/docs/api/class-worker.mdx
index 58022f1dd9..a0ceb23d39 100644
--- a/nodejs/docs/api/class-worker.mdx
+++ b/nodejs/docs/api/class-worker.mdx
@@ -25,6 +25,30 @@ for (const worker of page.workers())
## Methods
+### disconnect {#worker-disconnect}
+
+Added in: v1.60worker.disconnect
+
+Disconnects from a worker that was connected through [browserType.connectToWorker()](/api/class-browsertype.mdx#browser-type-connect-to-worker). Calling this method on any other worker will throw.
+
+**Usage**
+
+```js
+await worker.disconnect();
+await worker.disconnect(options);
+```
+
+**Arguments**
+- `options` [Object] *(optional)*
+ - `reason` [string] *(optional)*#
+
+ The reason to be reported to the operations interrupted by the worker disconnect.
+
+**Returns**
+- [Promise]<[void]>#
+
+---
+
### evaluate {#worker-evaluate}
Added before v1.9worker.evaluate
diff --git a/python/docs/api/class-apirequestcontext.mdx b/python/docs/api/class-apirequestcontext.mdx
index a6f467308c..d871c57a0d 100644
--- a/python/docs/api/class-apirequestcontext.mdx
+++ b/python/docs/api/class-apirequestcontext.mdx
@@ -713,6 +713,22 @@ api_request_context.storage_state(**kwargs)
+---
+
+## Properties
+
+### tracing {#api-request-context-tracing}
+
+Added in: v1.60apiRequestContext.tracing
+
+**Usage**
+
+```python
+api_request_context.tracing
+```
+
+**Type**
+- [Tracing]
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
diff --git a/python/docs/api/class-browsercontext.mdx b/python/docs/api/class-browsercontext.mdx
index cdb9685a85..f6138ac73f 100644
--- a/python/docs/api/class-browsercontext.mdx
+++ b/python/docs/api/class-browsercontext.mdx
@@ -555,14 +555,6 @@ asyncio.run(main())
- `callback` [Callable]#
Callback function that will be called in the Playwright's context.
-- `handle` [bool] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
diff --git a/python/docs/api/class-locator.mdx b/python/docs/api/class-locator.mdx
index 53f839062c..c1ab0ab1cb 100644
--- a/python/docs/api/class-locator.mdx
+++ b/python/docs/api/class-locator.mdx
@@ -1825,6 +1825,23 @@ await expect(page.get_by_title("Issues count")).to_have_text("25 issues")
---
+### hide_highlight {#locator-hide-highlight}
+
+Added in: v1.60locator.hide_highlight
+
+Hide element highlight added with Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that uses [locator.highlight()](/api/class-locator.mdx#locator-highlight).
+
+**Usage**
+
+```python
+locator.hide_highlight()
+```
+
+**Returns**
+- [NoneType]#
+
+---
+
### highlight {#locator-highlight}
Added in: v1.20locator.highlight
@@ -1835,10 +1852,16 @@ Highlight the corresponding element(s) on the screen. Useful for debugging, don'
```python
locator.highlight()
+locator.highlight(**kwargs)
```
+**Arguments**
+- `style` [str] *(optional)* Added in: v1.60#
+
+ Additional inline CSS applied to the highlight overlay, e.g. `"outline: 2px dashed red"`.
+
**Returns**
-- [NoneType]#
+- [Disposable]#
---
diff --git a/python/docs/api/class-locatorassertions.mdx b/python/docs/api/class-locatorassertions.mdx
index e755869b5b..f7f7d5dc36 100644
--- a/python/docs/api/class-locatorassertions.mdx
+++ b/python/docs/api/class-locatorassertions.mdx
@@ -1867,6 +1867,9 @@ await expect(locator).to_have_css("display", "flex")
- `value` [str] | [Pattern] Added in: v1.18#
CSS property value.
+- `pseudo` "before" | "after" *(optional)* Added in: v1.60#
+
+ Pseudo-element to read computed styles from.
- `timeout` [float] *(optional)* Added in: v1.18#
Time to retry the assertion for in milliseconds. Defaults to `5000`.
diff --git a/python/docs/api/class-page.mdx b/python/docs/api/class-page.mdx
index ad6b43fd08..4aa5deb8d6 100644
--- a/python/docs/api/class-page.mdx
+++ b/python/docs/api/class-page.mdx
@@ -1455,14 +1455,6 @@ asyncio.run(main())
- `callback` [Callable]#
Callback function that will be called in the Playwright's context.
-- `handle` [bool] *(optional)*#
-
- :::warning[Deprecated]
- This option will be removed in the future.
- :::
-
-
- Whether to pass the argument as a handle, instead of passing by value. When passing a handle, only one argument is supported. When passing by value, multiple arguments are supported.
**Returns**
- [Disposable]#
@@ -2243,6 +2235,23 @@ page.goto(url, **kwargs)
---
+### hide_highlight {#page-hide-highlight}
+
+Added in: v1.60page.hide_highlight
+
+Hide all locator highlight overlays previously added by [locator.highlight()](/api/class-locator.mdx#locator-highlight) on this page.
+
+**Usage**
+
+```python
+page.hide_highlight()
+```
+
+**Returns**
+- [NoneType]#
+
+---
+
### locator {#page-locator}
Added in: v1.14page.locator
diff --git a/python/docs/api/class-tracing.mdx b/python/docs/api/class-tracing.mdx
index eb74fc096c..1ce10e42cc 100644
--- a/python/docs/api/class-tracing.mdx
+++ b/python/docs/api/class-tracing.mdx
@@ -283,6 +283,65 @@ await context.tracing.stop_chunk(path = "trace2.zip")
---
+### start_har {#tracing-start-har}
+
+Added in: v1.60tracing.start_har
+
+Start recording a HAR (HTTP Archive) of network activity in this context. The HAR file is written to disk when [tracing.stop_har()](/api/class-tracing.mdx#tracing-stop-har) is called, or when the returned [Disposable] is disposed.
+
+Only one HAR recording can be active at a time per [BrowserContext].
+
+**Usage**
+
+
+
+
+```py
+context.tracing.start_har("trace.har")
+page = context.new_page()
+page.goto("https://playwright.dev")
+context.tracing.stop_har()
+```
+
+
+
+
+```py
+await context.tracing.start_har("trace.har")
+page = await context.new_page()
+await page.goto("https://playwright.dev")
+await context.tracing.stop_har()
+```
+
+
+
+
+**Arguments**
+- `path` [Union]\[[str], [pathlib.Path]\]#
+
+ Path on the filesystem to write the HAR file to. If the file name ends with `.zip`, the HAR is saved as a zip archive with response bodies attached as separate files.
+- `content` "omit" | "embed" | "attach" *(optional)*#
+
+ Optional setting to control resource content management. If `omit` is specified, content is not persisted. If `attach` is specified, resources are persisted as separate files or entries in the ZIP archive. If `embed` is specified, content is stored inline the HAR file as per HAR specification. Defaults to `attach` for `.zip` output files and to `embed` for all other file extensions.
+- `mode` "full" | "minimal" *(optional)*#
+
+ When set to `minimal`, only record information necessary for routing from HAR. This omits sizes, timing, page, cookies, security and other types of HAR information that are not used when replaying from HAR. Defaults to `full`.
+- `url_filter` [str] | [Pattern] *(optional)*#
+
+ A glob or regex pattern to filter requests that are stored in the HAR. Defaults to none.
+
+**Returns**
+- [Disposable]#
+
+---
+
### stop {#tracing-stop}
Added in: v1.12tracing.stop
@@ -327,6 +386,23 @@ tracing.stop_chunk(**kwargs)
**Returns**
- [NoneType]#
+---
+
+### stop_har {#tracing-stop-har}
+
+Added in: v1.60tracing.stop_har
+
+Stop HAR recording and save the HAR file to the path given to [tracing.start_har()](/api/class-tracing.mdx#tracing-start-har).
+
+**Usage**
+
+```python
+tracing.stop_har()
+```
+
+**Returns**
+- [NoneType]#
+
[APIRequest]: /api/class-apirequest.mdx "APIRequest"
[APIRequestContext]: /api/class-apirequestcontext.mdx "APIRequestContext"
diff --git a/src/components/GitHubStarButton/index.tsx b/src/components/GitHubStarButton/index.tsx
index a2f8eeb443..aa3ac9645d 100644
--- a/src/components/GitHubStarButton/index.tsx
+++ b/src/components/GitHubStarButton/index.tsx
@@ -6,7 +6,7 @@ type StarButtonProps = {
repo: string
}
-const STARS = '85k+'; // NOTE: this line is generated by src/generate.js. Do not change!
+const STARS = '86k+'; // NOTE: this line is generated by src/generate.js. Do not change!
const StarButton: React.FC = ({owner, repo}) => {
if (!repo)