Actions
Introduction
CSTesting.DotNet (C:\CSTesting-DotNet) exposes ICSTestingBrowser and ICSTestingLocator with async methods: GotoAsync, ClickAsync, TypeAsync, CheckAsync, SelectAsync, HoverAsync, DragAndDropAsync, etc. (see README.md). Use Browser.Locator(selector) then .First() / .Last() / .Nth(n) when multiple elements match.
Text input
await browser.TypeAsync(selector, text) or await browser.Locator(selector).TypeAsync(text) fills inputs (Playwright Fill behavior).
await browser.TypeAsync("id=username", "Peter");
await browser.TypeAsync("name=email", "user@example.com");
await browser.Locator("id=username").TypeAsync("Peter");
await browser.Locator("[name='Birth date']").TypeAsync("2020-02-02");
await browser.Locator("textarea").First().TypeAsync("Hello");
Checkboxes and radio buttons
CheckAsync / UncheckAsync on selector or locator.
await browser.Locator("id=agree").CheckAsync();
await browser.CheckAsync("name=subscribe");
Assert.That(await browser.IsSelectedAsync("name=subscribe"), Is.True);
await browser.Locator("id=size-xl").CheckAsync();
Select options
Use await browser.SelectAsync(selector, value) for option value, or await browser.SelectByLabelAsync(selector, label) for visible text. On a locator: await loc.SelectAsync(value) / SelectByLabelAsync(label).
await browser.SelectAsync("#color", "blue");
await browser.SelectByLabelAsync("#color", "Blue");
Mouse click
ClickAsync, DoubleClickAsync, RightClickAsync, HoverAsync on selector or locator.
await browser.Locator("button").ClickAsync();
await browser.ClickAsync("id=submit");
await browser.DoubleClickAsync("#item");
await browser.RightClickAsync("#row");
await browser.HoverAsync("#menu");
Type characters
Use TypeAsync for fills. For special keys after focus, await browser.PressKeyAsync("Enter") or await locator.PressKeyAsync("Tab").
await browser.Locator("#area").TypeAsync("Hello World!");
await browser.PressKeyAsync("Enter");
Drag and drop
await browser.DragAndDropAsync(sourceSelector, targetSelector) or await locator.DragToAsync(targetSelector).
await browser.DragAndDropAsync("#source", "#target");
await browser.Locator(".card").First().DragToAsync(".drop-zone");
Scrolling
CSTesting scrolls elements into view before clicks. There are no dedicated scrollToPageTop helpers on ICSTestingBrowser; use await browser.EvaluateAsync<object>("() => window.scrollTo(0, document.body.scrollHeight)") or EvaluateAsync to call element.scrollIntoView() if needed.
await browser.EvaluateAsync<object>("() => document.querySelector('#submit').scrollIntoView()");
await browser.ClickAsync("#submit");