diff --git a/docs/src/api/class-browsercontext.md b/docs/src/api/class-browsercontext.md index f42beedd42..ed7cdaaffa 100644 --- a/docs/src/api/class-browsercontext.md +++ b/docs/src/api/class-browsercontext.md @@ -463,7 +463,7 @@ public class Example { "\n" + "\n" + "
"); - page.getByRole("button").click(); + page.getByRole(AriaRole.BUTTON).click(); } } } @@ -536,7 +536,7 @@ await page.SetContentAsync("\n" + "\n" + "
"); -await page.GetByRole("button").ClickAsync(); +await page.GetByRole(AriaRole.Button).ClickAsync(); ``` An example of passing an element handle: @@ -704,7 +704,7 @@ public class Example { "\n" + "\n" + "
\n"); - page.getByRole("button").click(); + page.getByRole(AriaRole.BUTTON).click(); } } } @@ -804,7 +804,7 @@ class BrowserContextExamples "\n" + "
"); - await page.GetByRole("button").ClickAsync(); + await page.GetByRole(AriaRole.Button).ClickAsync(); Console.WriteLine(await page.TextContentAsync("div")); } } diff --git a/docs/src/api/class-framelocator.md b/docs/src/api/class-framelocator.md index 3b5ab6679b..d3cef417f6 100644 --- a/docs/src/api/class-framelocator.md +++ b/docs/src/api/class-framelocator.md @@ -58,18 +58,18 @@ page.frame_locator('.result-frame').first.get_by_role('button').click() ```java // Throws if there are several frames in DOM: -page.frame_locator(".result-frame").getByRole("button").click(); +page.frame_locator(".result-frame").getByRole(AriaRole.BUTTON).click(); // Works because we explicitly tell locator to pick the first frame: -page.frame_locator(".result-frame").first().getByRole("button").click(); +page.frame_locator(".result-frame").first().getByRole(AriaRole.BUTTON).click(); ``` ```csharp // Throws if there are several frames in DOM: -await page.FrameLocator(".result-frame").GetByRole("button").ClickAsync(); +await page.FrameLocator(".result-frame").GetByRole(AriaRole.Button).ClickAsync(); // Works because we explicitly tell locator to pick the first frame: -await page.FrameLocator(".result-frame").First.getByRole("button").ClickAsync(); +await page.FrameLocator(".result-frame").First.getByRole(AriaRole.Button).ClickAsync(); ``` **Converting Locator to FrameLocator** diff --git a/docs/src/api/class-locator.md b/docs/src/api/class-locator.md index 076209d005..79b8752273 100644 --- a/docs/src/api/class-locator.md +++ b/docs/src/api/class-locator.md @@ -591,7 +591,7 @@ Locator rowLocator = page.locator("tr"); rowLocator .filter(new Locator.FilterOptions().setHasText("text in column 1")) .filter(new Locator.FilterOptions().setHas( - page.getByRole("button", new Page.GetByRoleOptions().setName("column 2 button")) + page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("column 2 button")) )) .screenshot(); ``` @@ -620,7 +620,7 @@ var rowLocator = page.Locator("tr"); await rowLocator .Filter(new LocatorFilterOptions { HasText = "text in column 1" }) .Filter(new LocatorFilterOptions { - Has = page.GetByRole("button", new() { Name = "column 2 button" } ) + Has = page.GetByRole(AriaRole.Button, new() { Name = "column 2 button" } ) }) .ScreenshotAsync(); ``` diff --git a/docs/src/api/class-locatorassertions.md b/docs/src/api/class-locatorassertions.md index 2f254cfb15..b46f5c9405 100644 --- a/docs/src/api/class-locatorassertions.md +++ b/docs/src/api/class-locatorassertions.md @@ -22,7 +22,7 @@ public class TestLocator { @Test void statusBecomesSubmitted() { ... - page.getByRole("button").click(); + page.getByRole(AriaRole.BUTTON).click(); assertThat(page.locator(".status")).hasText("Submitted"); } } @@ -61,7 +61,7 @@ public class ExampleTests : PageTest public async Task StatusBecomesSubmitted() { // .. - await Page.GetByRole("button").ClickAsync(); + await Page.GetByRole(AriaRole.Button).ClickAsync(); await Expect(Page.Locator(".status")).ToHaveTextAsync("Submitted"); } } @@ -525,7 +525,7 @@ await expect(locator).toBeEditable(); ``` ```java -assertThat(page.getByRole("textbox")).isEditable(); +assertThat(page.getByRole(AriaRole.TEXTBOX)).isEditable(); ``` ```python async @@ -543,7 +543,7 @@ expect(locator).to_be_editable() ``` ```csharp -var locator = Page.GetByRole("textbox"); +var locator = Page.GetByRole(AriaRole.Textbox); await Expect(locator).ToBeEditableAsync(); ``` @@ -662,7 +662,7 @@ await expect(locator).toBeFocused(); ``` ```java -assertThat(page.getByRole("textbox")).isFocused(); +assertThat(page.getByRole(AriaRole.TEXTBOX)).isFocused(); ``` ```python async @@ -680,7 +680,7 @@ expect(locator).to_be_focused() ``` ```csharp -var locator = Page.GetByRole("textbox"); +var locator = Page.GetByRole(AriaRole.Textbox); await Expect(locator).ToBeFocusedAsync(); ``` @@ -1177,7 +1177,7 @@ await expect(locator).toHaveCSS('display', 'flex'); ``` ```java -assertThat(page.getByRole("button")).hasCSS("display", "flex"); +assertThat(page.getByRole(AriaRole.BUTTON)).hasCSS("display", "flex"); ``` ```python async @@ -1195,7 +1195,7 @@ expect(locator).to_have_css("display", "flex") ``` ```csharp -var locator = Page.GetByRole("button"); +var locator = Page.GetByRole(AriaRole.Button); await Expect(locator).ToHaveCSSAsync("display", "flex"); ``` @@ -1232,7 +1232,7 @@ await expect(locator).toHaveId('lastname'); ``` ```java -assertThat(page.getByRole("textbox")).hasId("lastname"); +assertThat(page.getByRole(AriaRole.TEXTBOX)).hasId("lastname"); ``` ```python async @@ -1250,7 +1250,7 @@ expect(locator).to_have_id("lastname") ``` ```csharp -var locator = Page.GetByRole("textbox"); +var locator = Page.GetByRole(AriaRole.Textbox); await Expect(locator).ToHaveIdAsync("lastname"); ``` diff --git a/docs/src/api/class-page.md b/docs/src/api/class-page.md index 425e7cbbb7..91fd49bba3 100644 --- a/docs/src/api/class-page.md +++ b/docs/src/api/class-page.md @@ -3959,7 +3959,7 @@ await page.waitForLoadState(); // The promise resolves after 'load' event. ``` ```java -page.getByRole("button").click(); // Click triggers navigation. +page.getByRole(AriaRole.BUTTON).click(); // Click triggers navigation. page.waitForLoadState(); // The promise resolves after "load" event. ``` @@ -3974,7 +3974,7 @@ page.wait_for_load_state() # the promise resolves after "load" event. ``` ```csharp -await page.GetByRole("button").ClickAsync(); // Click triggers navigation. +await page.GetByRole(AriaRole.Button).ClickAsync(); // Click triggers navigation. await page.WaitForLoadStateAsync(); // The promise resolves after 'load' event. ``` diff --git a/docs/src/dialogs.md b/docs/src/dialogs.md index 46f5013a61..eb285bb965 100644 --- a/docs/src/dialogs.md +++ b/docs/src/dialogs.md @@ -16,7 +16,7 @@ await page.getByRole('button').click(); ```java page.onDialog(dialog -> dialog.accept()); -page.getByRole("button").click(); +page.getByRole(AriaRole.BUTTON).click(); ``` ```python async @@ -31,7 +31,7 @@ page.get_by_role("button").click() ```csharp page.Dialog += (_, dialog) => dialog.AcceptAsync(); -await page.GetByRole("button").ClickAsync(); +await page.GetByRole(AriaRole.Button).ClickAsync(); ``` :::note @@ -51,7 +51,7 @@ await page.getByRole('button').click(); // Will hang here ```java page.onDialog(dialog -> System.out.println(dialog.message())); -page.getByRole("button").click(); // Will hang here +page.getByRole(AriaRole.BUTTON).click(); // Will hang here ``` ```python async @@ -66,7 +66,7 @@ page.get_by_role("button").click() # Will hang here ```csharp page.Dialog += (_, dialog) => Console.WriteLine(dialog.Message); -await page.GetByRole("button").ClickAsync(); // Will hang here +await page.GetByRole(AriaRole.Button).ClickAsync(); // Will hang here ``` :::note diff --git a/docs/src/input.md b/docs/src/input.md index 371b3786b6..1423bd115d 100644 --- a/docs/src/input.md +++ b/docs/src/input.md @@ -25,7 +25,7 @@ await page.getByLabel('Local time').fill('2020-03-02T05:15'); ```java // Text input -page.getByRole("textbox").fill("Peter"); +page.getByRole(AriaRole.TEXTBOX).fill("Peter"); // Date input page.getByLabel("Birth date").fill("2020-02-02"); @@ -67,7 +67,7 @@ page.get_by_label("Local time").fill("2020-03-02T05:15") ```csharp // Text input -await page.GetByRole("textbox").FillAsync("Peter"); +await page.GetByRole(AriaRole.Textbox).FillAsync("Peter"); // Date input await page.GetByLabel("Birth date").FillAsync("2020-02-02"); @@ -224,7 +224,7 @@ await page.getByText('Item').click({ position: { x: 0, y: 0} }); ```java // Generic click -page.getByRole("button").click(); +page.getByRole(AriaRole.BUTTON).click(); // Double click page.getByText("Item").dblclick(); @@ -284,7 +284,7 @@ page.get_by_text("Item").click(position={ "x": 0, "y": 0}) ```csharp // Generic click -await page.GetByRole("button").ClickAsync(); +await page.GetByRole(AriaRole.Button).ClickAsync(); // Double click await page.GetByText("Item").DblClickAsync(); @@ -320,7 +320,7 @@ await page.getByRole('button').click({ force: true }); ``` ```java -page.getByRole("button").click(new Locator.ClickOptions().setForce(true)); +page.getByRole(AriaRole.BUTTON).click(new Locator.ClickOptions().setForce(true)); ``` ```python async @@ -332,7 +332,7 @@ page.get_by_role("button").click(force=True) ``` ```csharp -await page.GetByRole("button").ClickAsync(new() { Force = true }); +await page.GetByRole(AriaRole.Button).ClickAsync(new() { Force = true }); ``` #### Programmatic click @@ -344,7 +344,7 @@ await page.getByRole('button').dispatchEvent('click'); ``` ```java -page.getByRole("button").dispatchEvent("click"); +page.getByRole(AriaRole.BUTTON).dispatchEvent("click"); ``` ```python async @@ -356,7 +356,7 @@ page.get_by_role("button").dispatch_event('click') ``` ```csharp -await page.GetByRole("button").DispatchEventAsync("click"); +await page.GetByRole(AriaRole.Button).DispatchEventAsync("click"); ``` ## Type characters @@ -412,10 +412,10 @@ await page.getByRole('textbox').press('$'); page.getByText("Submit").press("Enter"); // Dispatch Control+Right -page.getByRole("textbox").press("Control+ArrowRight"); +page.getByRole(AriaRole.TEXTBOX).press("Control+ArrowRight"); // Press $ sign on keyboard -page.getByRole("textbox").press("$"); +page.getByRole(AriaRole.TEXTBOX).press("$"); ``` ```python async @@ -445,10 +445,10 @@ page.get_by_role("textbox").press("$") await page.GetByText("Submit").PressAsync("Enter"); // Dispatch Control+Right -await page.GetByRole("textbox").PressAsync("Control+ArrowRight"); +await page.GetByRole(AriaRole.Textbox).PressAsync("Control+ArrowRight"); // Press $ sign on keyboard -await page.GetByRole("textbox").PressAsync("$"); +await page.GetByRole(AriaRole.Textbox).PressAsync("$"); ``` The [`method: Locator.press`] method focuses the selected element and produces a single keystroke. It accepts the logical key names that are emitted in the [keyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) property of the keyboard events: diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index dd102d841b..93515af0ee 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -46,7 +46,7 @@ await page.GetByLabel("User Name").FillAsync("John"); await page.GetByLabel("Password").FillAsync("secret-password"); -await page.GetByRole("button", new() { NameString = "Sign in" }).ClickAsync(); +await page.GetByRole(AriaRole.Button, new() { NameString = "Sign in" }).ClickAsync(); await Expect(page.GetByText("Welcome, John!")).ToBeVisibleAsync(); ``` @@ -61,8 +61,8 @@ All the same methods are also available on [Locator], [FrameLocator] and [Frame] - [`method: LocatorAssertions.toHaveAttribute`] with an empty value does not match missing attribute anymore. For example, the following snippet will succeed when `button` **does not** have a `disabled` attribute. - ```js - await Expect(page.GetByRole("button")).ToHaveAttribute("disabled", ""); + ```csharp + await Expect(page.GetByRole(AriaRole.Button)).ToHaveAttribute("disabled", ""); ``` ### Browser Versions