Headless and repeatable native UI tests

Testing & CI

Run the same native UI intent interactively, headlessly, or through established automation ecosystems.

Explore source
Parent systemCDP
StatusPreview
Modules5
RepositoryCDP/CDP.Automation.Headless

Headless Avalonia execution, a global flow runner, Playwright and Puppeteer compatibility, Selenium and Appium orchestration, OS accessibility automation, screenshots, selectors, waits, assertions, and GitHub Actions support cover local through CI test lanes.

  1. 01

    Zero-display Avalonia.Headless execution

  2. 02

    Test Studio flow runner

  3. 03

    Playwright, Selenium, Appium, and Puppeteer

  4. 04

    CI screenshots, telemetry, and reports

From intent
to working system.

01

Launch

The runner starts a headless or visible application and waits for CDP discovery.

02

Drive

Flows or external clients query selectors and dispatch input through protocol domains.

03

Assert

Visibility, text, state, properties, scripts, waits, and screenshots verify behavior.

04

Publish

CI retains logs, images, telemetry, and machine- or human-readable reports.

Adopt this
capability.

Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.

01 · Install
Terminal
dotnet tool install --global Chrome.DevTools.Runner --prerelease
dotnet add package Chrome.DevTools.Automation.Headless --prerelease
02 · Use · bash
Terminal
# Execute a Test Studio flow without the desktop editor.
cdp-runner tests/login.flow.yaml --app "dotnet run --project src/MyApp -- --headless" --report artifacts/test-report.html

Use one layer.
Compose the rest.

Read the module beside the complete system.

The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.

CDP

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…