diff --git a/docs/src/accessibility-testing-js.md b/docs/src/accessibility-testing-js.md index 447923f2f3..69aa566854 100644 --- a/docs/src/accessibility-testing-js.md +++ b/docs/src/accessibility-testing-js.md @@ -74,7 +74,7 @@ For example, you can use [`AxeBuilder.include()`](https://github.com/dequelabs/a test('navigation menu flyout should not have automatically detectable accessibility violations', async ({ page }) => { await page.goto('https://your-site.com/'); - await page.locator('button[aria-label="Navigation Menu"]').click(); + await page.getByRole('button', { name: 'Navigation Menu' }).click(); // It is important to waitFor() the page to be in the desired // state *before* running analyze(). Otherwise, axe might not diff --git a/docs/src/api/class-browsercontext.md b/docs/src/api/class-browsercontext.md index b7da9f113f..709c78db7f 100644 --- a/docs/src/api/class-browsercontext.md +++ b/docs/src/api/class-browsercontext.md @@ -435,7 +435,7 @@ const { webkit } = require('playwright'); // Or 'chromium' or 'firefox'.
`); - await page.locator('button').click(); + await page.getByRole('button').click(); })(); ``` @@ -457,7 +457,7 @@ public class Example { "\n" + "\n" + "
"); - page.locator("button").click(); + page.getByRole("button").click(); } } } @@ -482,7 +482,7 @@ async def run(playwright):
""") - await page.locator("button").click() + await page.get_by_role("button").click() async def main(): async with async_playwright() as playwright: @@ -508,7 +508,7 @@ def run(playwright):
""") - page.locator("button").click() + page.get_by_role("button").click() with sync_playwright() as playwright: run(playwright) @@ -530,7 +530,7 @@ await page.SetContentAsync("\n" + "\n" + "
"); -await page.Locator("button").ClickAsync(); +await page.GetByRole("button").ClickAsync(); ``` An example of passing an element handle: @@ -660,7 +660,7 @@ const crypto = require('crypto');
`); - await page.locator('button').click(); + await page.getByRole('button').click(); })(); ``` @@ -696,7 +696,7 @@ public class Example { "\n" + "\n" + "
\n"); - page.locator("button").click(); + page.getByRole("button").click(); } } } @@ -728,7 +728,7 @@ async def run(playwright):
""") - await page.locator("button").click() + await page.get_by_role("button").click() async def main(): async with async_playwright() as playwright: @@ -761,7 +761,7 @@ def run(playwright):
""") - page.locator("button").click() + page.get_by_role("button").click() with sync_playwright() as playwright: run(playwright) @@ -796,7 +796,7 @@ class BrowserContextExamples "\n" + "
"); - await page.Locator("button").ClickAsync(); + await page.GetByRole("button").ClickAsync(); Console.WriteLine(await page.TextContentAsync("div")); } } @@ -1300,30 +1300,30 @@ value. Will throw an error if the context closes before the event is fired. Retu ```js const [page, _] = await Promise.all([ context.waitForEvent('page'), - page.locator('button').click() + page.getByRole('button').click() ]); ``` ```java -Page newPage = context.waitForPage(() -> page.locator("button").click()); +Page newPage = context.waitForPage(() -> page.getByRole("button").click()); ``` ```python async async with context.expect_event("page") as event_info: - await page.locator("button").click() + await page.get_by_role("button").click() page = await event_info.value ``` ```python sync with context.expect_event("page") as event_info: - page.locator("button").click() + page.get_by_role("button").click() page = event_info.value ``` ```csharp var page = await context.RunAndWaitForPageAsync(async () => { - await page.Locator("button").ClickAsync(); + await page.GetByRole("button").ClickAsync(); }); ``` diff --git a/docs/src/api/class-download.md b/docs/src/api/class-download.md index 7e1f949056..db98634d94 100644 --- a/docs/src/api/class-download.md +++ b/docs/src/api/class-download.md @@ -15,23 +15,16 @@ const [ download ] = await Promise.all([ // It is important to call waitForEvent before click to set up waiting. page.waitForEvent('download'), // Triggers the download. - page.locator('text=Download file').click(), + page.getByText('Download file').click(), ]); // wait for download to complete const path = await download.path(); ``` -```java -// wait for download to start -Download download = page.waitForDownload(() -> page.locator("a").click()); -// wait for download to complete -Path path = download.path(); -``` - ```java // wait for download to start Download download = page.waitForDownload(() -> { - page.locator("a").click(); + page.getByText("Download file").click(); }); // wait for download to complete Path path = download.path(); @@ -39,7 +32,7 @@ Path path = download.path(); ```python async async with page.expect_download() as download_info: - await page.locator("a").click() + await page.get_by_text("Download file").click() download = await download_info.value # waits for download to complete path = await download.path() @@ -47,7 +40,7 @@ path = await download.path() ```python sync with page.expect_download() as download_info: - page.locator("a").click() + page.get_by_text("Download file").click() download = download_info.value # wait for download to complete path = download.path() @@ -56,7 +49,7 @@ path = download.path() ```csharp var download = await page.RunAndWaitForDownloadAsync(async () => { - await page.Locator("#downloadButton").ClickAsync(); + await page.GetByText("Download file").ClickAsync(); }); Console.WriteLine(await download.PathAsync()); ``` diff --git a/docs/src/api/class-elementhandle.md b/docs/src/api/class-elementhandle.md index 3d4d6a36fb..bce036150b 100644 --- a/docs/src/api/class-elementhandle.md +++ b/docs/src/api/class-elementhandle.md @@ -76,32 +76,32 @@ await handle.ClickAsync(); With the locator, every time the `element` is used, up-to-date DOM element is located in the page using the selector. So in the snippet below, underlying DOM element is going to be located twice. ```js -const locator = page.locator('text=Submit'); +const locator = page.getByText('Submit'); // ... await locator.hover(); await locator.click(); ``` ```java -Locator locator = page.locator("text=Submit"); +Locator locator = page.getByText("Submit"); locator.hover(); locator.click(); ``` ```python async -locator = page.locator("text=Submit") +locator = page.get_by_text("Submit") await locator.hover() await locator.click() ``` ```python sync -locator = page.locator("text=Submit") +locator = page.get_by_text("Submit") locator.hover() locator.click() ``` ```csharp -var locator = page.Locator("text=Submit"); +var locator = page.GetByText("Submit"); await locator.HoverAsync(); await locator.ClickAsync(); ``` diff --git a/docs/src/api/class-filechooser.md b/docs/src/api/class-filechooser.md index b2c4cea6ff..d7e8c31799 100644 --- a/docs/src/api/class-filechooser.md +++ b/docs/src/api/class-filechooser.md @@ -10,26 +10,26 @@ const [fileChooser] = await Promise.all([ // It is important to call waitForEvent before click to set up waiting. page.waitForEvent('filechooser'), // Opens the file chooser. - page.locator('text=Upload').click(), + page.getByText('Upload').click(), ]); await fileChooser.setFiles('myfile.pdf'); ``` ```java -FileChooser fileChooser = page.waitForFileChooser(() -> page.locator("upload").click()); +FileChooser fileChooser = page.waitForFileChooser(() -> page.getByText("Upload").click()); fileChooser.setFiles(Paths.get("myfile.pdf")); ``` ```python async async with page.expect_file_chooser() as fc_info: - await page.locator("upload").click() + await page.get_by_text("Upload").click() file_chooser = await fc_info.value await file_chooser.set_files("myfile.pdf") ``` ```python sync with page.expect_file_chooser() as fc_info: - page.locator("upload").click() + page.get_by_text("Upload").click() file_chooser = fc_info.value file_chooser.set_files("myfile.pdf") ``` @@ -37,7 +37,7 @@ file_chooser.set_files("myfile.pdf") ```csharp var fileChooser = await page.RunAndWaitForFileChooserAsync(async () => { - await page.Locator("upload").ClickAsync(); + await page.GetByText("Upload").ClickAsync(); }); await fileChooser.SetFilesAsync("temp.txt"); ``` diff --git a/docs/src/api/class-frame.md b/docs/src/api/class-frame.md index 8dfef202b1..15253566da 100644 --- a/docs/src/api/class-frame.md +++ b/docs/src/api/class-frame.md @@ -859,27 +859,27 @@ in that iframe. Following snippet locates element with text "Submit" in the ifra like `