GUI Test Framework

Out-of-process functional testing for Slint UIs.

test_converter.py
with slint_testing.Application(["./my_app"]) as aut:    root = aut.first_window.root_element    celsius    = root.query_descendants().match_id("App::celsius-input").find_first()    convert    = root.query_descendants().match_id("App::convert-button").find_first()    fahrenheit = root.query_descendants().match_id("App::fahrenheit-input").find_first()    celsius.accessible_value = "100"    convert.invoke_accessible_default_action()    assert fahrenheit.accessible_value == "212"
with slint_testing.Application(
    ["./my_app"]) as aut:  root = aut.first_window.root_element  celsius = (root
    .query_descendants()
    .match_id("App::celsius-input")
    .find_first())  convert = (root
    .query_descendants()
    .match_id("App::convert-button")
    .find_first())  fahrenheit = (root
    .query_descendants()
    .match_id("App::fahrenheit-input")
    .find_first())  celsius.accessible_value = "100"  (convert
    .invoke_accessible_default_action())  assert (fahrenheit.accessible_value
      == "212")
connected · my_app
Celsius
Fahrenheit
running…

Query the live element tree

Find elements by id, type or accessible role.

Drive real input

Set values, invoke accessible actions, and send events.

Assert on state, geometry & rendering

Check accessible values, sizes and positions, take screenshots.

Run it on the target

Launch the app under test locally, on target hardware over SSH, or in CI.

GUI Test Framework is a commercial add‑on.