diff --git a/docs/src/api/class-selectors.md b/docs/src/api/class-selectors.md index 659e86db77..835a577418 100644 --- a/docs/src/api/class-selectors.md +++ b/docs/src/api/class-selectors.md @@ -76,6 +76,31 @@ browser.close(); # FIXME: add snippet ``` +```csharp +using var playwright = await Playwright.CreateAsync(); +// Script that evaluates to a selector engine instance. +await playwright.Selectors.RegisterAsync("tag", @"{ +// Returns the first element matching given selector in the root's subtree. +query(root, selector) { + return root.querySelector(selector); + }, + // Returns all elements matching given selector in the root's subtree. + queryAll(root, selector) { + return Array.from(root.querySelectorAll(selector)); + } +}"); + +await using var browser = await playwright.Chromium.LaunchAsync(); +var page = await browser.NewPageAsync(); +await page.SetContentAsync("
"); +// Use the selector prefixed with its name. +var button = await page.QuerySelectorAsync("tag=button"); +// Combine it with other selector engines. +await page.ClickAsync("tag=div >> text=\"Click me\""); +// Can use it in any methods supporting selectors. +int buttonCount = await page.EvalOnSelectorAllAsync("tag=button", "buttons => buttons.length"); +``` + ### param: Selectors.register.name - `name` <[string]>