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");