From 8724072a505df5ca9bbe5a9734cf4c9c697196ee Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Mon, 19 Dec 2022 21:57:40 +0100 Subject: [PATCH 1/5] docs: add 1.29 language port release notes --- docs/src/release-notes-csharp.md | 43 +++++++++++++++++++++++++++++ docs/src/release-notes-java.md | 24 +++++++++++++++++ docs/src/release-notes-js.md | 2 +- docs/src/release-notes-python.md | 46 ++++++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 1 deletion(-) diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index 9f9aad235be5d..653004872077d 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -4,6 +4,49 @@ title: "Release notes" toc_max_heading_level: 2 --- +## Version 1.29 + +### New APIs + +- New method [`method: Route.fetch`] and new option `Json` for [`method: Route.fulfill`]: + + ```csharp + await Page.RouteAsync("**/api/settings", async route => { + // Fetch original settings. + var response = await route.FetchAsync(); + + // Force settings theme to a predefined value. + var json = await response.JsonAsync(); + json["theme"] = "Solorized"; + + // Fulfill with modified data. + await route.FulfillAsync(new RouteFulfillOptions { + Json = json + }); + }); + ``` + +- New method [`method: Locator.all`] to iterate over all matching elements: + + ```csharp + // Check all checkboxes! + var checkboxes = await Page.LocatorAsync("role=checkbox"); + foreach (var checkbox in await checkboxes.AllAsync()) + await checkbox.CheckAsync(); + ``` + +### Browser Versions + +* Chromium 109.0.5414.46 +* Mozilla Firefox 107.0 +* WebKit 16.4 + +This version was also tested against the following stable channels: + +* Google Chrome 108 +* Microsoft Edge 108 + + ## Version 1.28 ### Playwright Tools diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index 84e1c4291777a..a58693358917b 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -4,6 +4,30 @@ title: "Release notes" toc_max_heading_level: 2 --- +## Version 1.29 + +### New APIs + +- New method [`method: Locator.all`] to iterate over all matching elements: + + ```java + // Check all checkboxes! + const checkboxes = page.getByRole('checkbox'); + for (Locator checkbox : checkboxes.all()) + checkbox.check(); + ``` + +### Browser Versions + +* Chromium 109.0.5414.46 +* Mozilla Firefox 107.0 +* WebKit 16.4 + +This version was also tested against the following stable channels: + +* Google Chrome 108 +* Microsoft Edge 108 + ## Version 1.28 ### Playwright Tools diff --git a/docs/src/release-notes-js.md b/docs/src/release-notes-js.md index 24ecc6ce10ad6..ead6fa6c79e62 100644 --- a/docs/src/release-notes-js.md +++ b/docs/src/release-notes-js.md @@ -65,7 +65,7 @@ toc_max_heading_level: 2 - Playwright Test now respects [`jsconfig.json`](https://code.visualstudio.com/docs/languages/jsconfig). - New options `args` and `proxy` for [`method: AndroidDevice.launchBrowser`]. -- Option `postData` in method [`method: Route.continue`] now supports [serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#description) values. +- Option `postData` in method [`method: Route.continue`] now supports [Serializable] values. ### Browser Versions diff --git a/docs/src/release-notes-python.md b/docs/src/release-notes-python.md index a233d045ebb17..5c4556480aae7 100644 --- a/docs/src/release-notes-python.md +++ b/docs/src/release-notes-python.md @@ -4,6 +4,52 @@ title: "Release notes" toc_max_heading_level: 2 --- +## Version 1.29 + +### New APIs + +- New method [`method: Route.fetch`] and new option `json` for [`method: Route.fulfill`]: + + ```python + def handle_route(route: Route): + # Fetch original settings. + response = route.fetch() + + # Force settings theme to a predefined value. + json = response.json() + json["theme"] = "Solorized" + + # Fulfill with modified data. + route.fulfill(json=json) + + + page.route("**/api/settings", handle_route) + ``` + +- New method [`method: Locator.all`] to iterate over all matching elements: + + ```python + # Check all checkboxes! + checkboxes = page.get_by_role("checkbox") + for checkbox in checkboxes.all(): + checkbox.check() + ``` + +### Miscellaneous + +- Option `postData` in method [`method: Route.continue`] now supports [Serializable] values. + +### Browser Versions + +* Chromium 109.0.5414.46 +* Mozilla Firefox 107.0 +* WebKit 16.4 + +This version was also tested against the following stable channels: + +* Google Chrome 108 +* Microsoft Edge 108 + ## Version 1.28 ### Playwright Tools From a1e0f0e3a6579ccac0a59f38e4f8e5f8d90449db Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Mon, 19 Dec 2022 22:00:19 +0100 Subject: [PATCH 2/5] Apply suggestions from code review Signed-off-by: Max Schmitt --- docs/src/release-notes-csharp.md | 8 ++++---- docs/src/release-notes-java.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index 653004872077d..f07e339b0c715 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -16,11 +16,11 @@ toc_max_heading_level: 2 var response = await route.FetchAsync(); // Force settings theme to a predefined value. - var json = await response.JsonAsync(); - json["theme"] = "Solorized"; + var json = await response.JsonAsync(); + json.Theme = "Solarized"; // Fulfill with modified data. - await route.FulfillAsync(new RouteFulfillOptions { + await route.FulfillAsync(new() { Json = json }); }); @@ -30,7 +30,7 @@ toc_max_heading_level: 2 ```csharp // Check all checkboxes! - var checkboxes = await Page.LocatorAsync("role=checkbox"); + var checkboxes = Page.Locator("role=checkbox"); foreach (var checkbox in await checkboxes.AllAsync()) await checkbox.CheckAsync(); ``` diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index a58693358917b..a2d017bf3dd93 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -12,7 +12,7 @@ toc_max_heading_level: 2 ```java // Check all checkboxes! - const checkboxes = page.getByRole('checkbox'); + Locator checkboxes = page.getByRole('checkbox'); for (Locator checkbox : checkboxes.all()) checkbox.check(); ``` From da0b96d1495575b750f100cc12cb7116c37292b6 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Mon, 19 Dec 2022 23:07:31 +0100 Subject: [PATCH 3/5] selectOption feature --- docs/src/release-notes-csharp.md | 14 ++++++++++++++ docs/src/release-notes-java.md | 14 ++++++++++++++ docs/src/release-notes-js.md | 14 ++++++++++++++ docs/src/release-notes-python.md | 14 ++++++++++++++ 4 files changed, 56 insertions(+) diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index f07e339b0c715..4b59d9a0c10de 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -35,6 +35,20 @@ toc_max_heading_level: 2 await checkbox.CheckAsync(); ``` +- [`method: Locator.selectOption`] matches now by value or label: + + ```html + + ``` + + ```csharp + await element.SelectOptionAsync("Red"); + ``` + ### Browser Versions * Chromium 109.0.5414.46 diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index a2d017bf3dd93..a0d1ade85130f 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -17,6 +17,20 @@ toc_max_heading_level: 2 checkbox.check(); ``` +- [`method: Locator.selectOption`] matches now by value or label: + + ```html + + ``` + + ```java + element.selectOption('Red'); + ``` + ### Browser Versions * Chromium 109.0.5414.46 diff --git a/docs/src/release-notes-js.md b/docs/src/release-notes-js.md index ead6fa6c79e62..6d944460b3a36 100644 --- a/docs/src/release-notes-js.md +++ b/docs/src/release-notes-js.md @@ -33,6 +33,20 @@ toc_max_heading_level: 2 await checkbox.check(); ``` +- [`method: Locator.selectOption`] matches now by value or label: + + ```html + + ``` + + ```js + await element.selectOption('Red'); + ``` + - Retry blocks of code until all assertions pass: ```js diff --git a/docs/src/release-notes-python.md b/docs/src/release-notes-python.md index 5c4556480aae7..f8bacc85c8b8f 100644 --- a/docs/src/release-notes-python.md +++ b/docs/src/release-notes-python.md @@ -35,6 +35,20 @@ toc_max_heading_level: 2 checkbox.check() ``` +- [`method: Locator.selectOption`] matches now by value or label: + + ```html + + ``` + + ```python + element.select_option("Red") + ``` + ### Miscellaneous - Option `postData` in method [`method: Route.continue`] now supports [Serializable] values. From 74e145bac0b8ac964b27063ba6200088c8dce5e5 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Tue, 20 Dec 2022 20:49:23 +0100 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Yury Semikhatsky Signed-off-by: Max Schmitt --- docs/src/release-notes-csharp.md | 2 +- docs/src/release-notes-java.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index 4b59d9a0c10de..45b6aa0ccebdc 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -30,7 +30,7 @@ toc_max_heading_level: 2 ```csharp // Check all checkboxes! - var checkboxes = Page.Locator("role=checkbox"); + var checkboxes = Page.GetByRole(AriaRole.CHECKBOX); foreach (var checkbox in await checkboxes.AllAsync()) await checkbox.CheckAsync(); ``` diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index a0d1ade85130f..b6680a4e27761 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -12,7 +12,7 @@ toc_max_heading_level: 2 ```java // Check all checkboxes! - Locator checkboxes = page.getByRole('checkbox'); + Locator checkboxes = page.getByRole(AriaRole.CHECKBOX); for (Locator checkbox : checkboxes.all()) checkbox.check(); ``` From 0ab9813f870b7cddc1ffaf492e27219b75c71da6 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Tue, 20 Dec 2022 20:49:57 +0100 Subject: [PATCH 5/5] Update release-notes-csharp.md --- docs/src/release-notes-csharp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index 45b6aa0ccebdc..0017c7b67e3ae 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -30,7 +30,7 @@ toc_max_heading_level: 2 ```csharp // Check all checkboxes! - var checkboxes = Page.GetByRole(AriaRole.CHECKBOX); + var checkboxes = Page.GetByRole(AriaRole.Checkbox); foreach (var checkbox in await checkboxes.AllAsync()) await checkbox.CheckAsync(); ```