Atata stands with Ukraine


In solidarity, please consider financially support Ukraine (UNITED24, "Come Back Alive" fund) or check out other ways to support Ukraine.

Atata

C#/.NET web test automation full-featured framework

Atata.WebDriverSetup 3.0.0 is Released

November 20, 2024

Atata.WebDriverSetup 3.0.0 is released with a new more reliable Edge version/driver resolution.

Atata 3.3.0 is Released

November 5, 2024

Atata 3.3.0 is released with an upgrade of Selenium.WebDriver to v4.26.1.

Atata.WebDriverSetup 2.12.0 is Released

July 30, 2024

Atata.WebDriverSetup 2.12.0 is released with an improved Edge driver download.

WebDriver

Based on Selenium WebDriver and preserves all its features.

Page object model

Provides a unique fluent page object pattern, which is easy to implement and maintain.

Components

Contains a rich set of ready-to-use components for inputs, tables, lists, etc.

Integration

Works on any .NET test engine (e.g. NUnit, xUnit, SpecFlow) as well as on CI systems like Jenkins, GitHub Actions, or TeamCity.

Triggers

A bunch of triggers to bind with different events to extend component behavior.

Verification

A set of fluent assertion methods and triggers for a component and data verification.

Configurable

Defines the default component search strategies as well as additional settings. Atata.Configuration.Json provides flexible JSON configurations.

Reporting/Logging

Built-in customizable logging; screenshots and snapshots capturing functionality.

Extensible

Atata.HtmlValidation adds HTML page validation. Atata.Bootstrap and Atata.KendoUI provide extra components.

Simple example for Sign In page.

Define Page Object Class

using Atata;

namespace SampleApp.UITests;

using _ = SignInPage;

[Url("signin")] // Relative URL of the page.
public class SignInPage : Page<_>
{
    [FindById] // Finds text input by "email" id.
    public TextInput<_> Email { get; private set; }

    [FindById] // Finds password input by "password" id.
    public PasswordInput<_> Password { get; private set; }

    [FindByContent] // Finds button by "Sign In" text content.
    public Button<_> SignIn { get; private set; }
}
Sign in page

Implement Test

[Test]
public void SignIn() =>
    Go.To<SignInPage>()
        .Email.Type("admin@mail.com")
        .Password.Type("abc123")
        .SignIn.Click();

[SetUp]
public void SetUp() =>
    AtataContext.Configure()
        .UseChrome()
        .UseBaseUrl("https://demo.atata.io/")
        .Build();

[TearDown]
public void TearDown() =>
    AtataContext.Current?.Dispose();
Sign in page with filled data
Get Started

Or check out Tutorials for guides and Examples for how to.