diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index db54b38b6e..a4443a1084 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -5,6 +5,93 @@ title: "Release notes" +## Version 1.23 + +### Network Replay + +Now you can record network traffic into a HAR file and re-use this traffic in your tests. + +To record network into HAR file: + +```bash +mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="open --save-har=example.har --save-har-glob='**/api/**' https://example.com" +``` + +Alternatively, you can record HAR programmatically: + +```java +BrowserContext context = browser.newContext(new Browser.NewContextOptions() + .setRecordHarPath(Paths.get("example.har")) + .setRecordHarUrlFilter("**/api/**")); + +// ... Perform actions ... + +// Close context to ensure HAR is saved to disk. +context.close(); +``` + +Use the new methods [`method: Page.routeFromHAR`] or [`method: BrowserContext.routeFromHAR`] to serve matching responses from the [HAR](http://www.softwareishard.com/blog/har-12-spec/) file: + + +```java +context.routeFromHAR(Paths.get("example.har")); +``` + +Read more in [our documentation](./network#record-and-replay-requests). + + +### Advanced Routing + +You can now use [`method: Route.fallback`] to defer routing to other handlers. + +Consider the following example: + +```java +// Remove a header from all requests. +page.route("**/*", route -> { + Map headers = new HashMap<>(route.request().headers()); + headers.remove("X-Secret"); + route.resume(new Route.ResumeOptions().setHeaders(headers)); +}); + +// Abort all images. +page.route("**/*", route -> { + if ("image".equals(route.request().resourceType())) + route.abort(); + else + route.fallback(); +}); +``` + +Note that the new methods [`method: Page.routeFromHAR`] and [`method: BrowserContext.routeFromHAR`] also participate in routing and could be deferred to. + +### Web-First Assertions Update + +* New method [`method: LocatorAssertions.toHaveValues`] that asserts all selected values of `