Skip to main content

Crate waydriver

Crate waydriver 

Source
Expand description

Headless GUI testing for Wayland applications.

WayDriver launches apps in isolated compositor sessions, interacts with them via AT-SPI accessibility APIs, and captures screenshots via PipeWire.

The library is backend-agnostic: three traits (CompositorRuntime, InputBackend, CaptureBackend) define the interface, and concrete implementations live in separate crates (e.g. waydriver-compositor-mutter).

Re-exports§

pub use atspi::CachedAccessible;
pub use atspi::Rect;
pub use atspi::ValueInfo;
pub use backend::CaptureBackend;
pub use backend::CompositorRuntime;
pub use backend::InputBackend;
pub use backend::PipeWireStream;
pub use backend::PointerAxis;
pub use backend::PointerButton;
pub use backend::StreamToken;
pub use error::Error;
pub use error::Result;
pub use gsettings::GSettingEntry;
pub use gsettings::GSettingsConfig;
pub use locator::FillMode;
pub use locator::Locator;
pub use locator::SelectBy;
pub use role::Role;
pub use session::SecondaryInstance;
pub use session::Session;
pub use session::SessionConfig;
pub use session::VisualRegionTuning;
pub use session::VisualTextTuning;
pub use sink::CapturedNotification;
pub use sink::CapturedOpenUri;
pub use sink::ExternalSinks;

Modules§

atspi
AT-SPI accessibility tree inspection and interaction.
backend
Backend trait definitions for compositors, input, and capture.
capture
GStreamer-based PipeWire frame capture helpers.
error
Error types used throughout the crate.
gaction
Driving GTK app.* / win.* GActions over the org.gtk.Actions session-bus interface — for menu/dialog items absent from the AT-SPI tree. Driving GTK applications through their exported org.gtk.Actions D-Bus interface — a surface distinct from AT-SPI.
gsettings
Per-session GSettings isolation via the keyfile backend. Per-session GSettings isolation via GIO’s keyfile backend.
keysym
X11 keysym utilities for keyboard input.
locator
XPath-based lazy locators over the AT-SPI tree. XPath-based lazy locators for AT-SPI elements.
role
Typed AT-SPI roles for the ergonomic locator helpers. Typed AT-SPI roles for the ergonomic locator helpers.
session
Test session lifecycle management.
sink
Mock D-Bus services that capture an app’s external effects (desktop notifications, portal open-URI) for assertion. Mock D-Bus services that capture an app’s “external effects”.