Screenplay pattern for .NET

var webster = stage.Spotlight<Webster>();

await Given(webster).WasAbleTo(OpenTheUrl(shoppingCartPage));
await When(webster).AttemptsTo(RemoveTheItemFromTheirCartNamed("Widgets"));
await When(webster).AttemptsTo(SaveTheirShoppingCart());

var total = await Then(webster).Should(ReadTheTotalValueOfTheirCart());

Screenplay is a software design pattern to script the automation of complex processes. It is popular for writing BDD-style tests. CSF.Screenplay is a library and framework for the Screenplay pattern.