Skip to main content

Cross-platform UI automation toolkit for Robot Framework with XPath-based element selection

Project description

Robot Framework PlatynUI

Cross-platform UI automation for Robot Framework. Early alpha stage.

[!WARNING] Preview quality. APIs and behavior may change. Use for evaluation only.

Quick install (preview)

Install the pre-release packages from PyPI (explicit flags required):

# CLI
uv pip install --pre robotframework-platynui-cli
pip install --pre robotframework-platynui-cli
uv tool install --prerelease allow robotframework-platynui-cli

# Inspector GUI
uv pip install --pre robotframework-platynui-inspector
pip install --pre robotframework-platynui-inspector
uv tool install --prerelease allow robotframework-platynui-inspector

Try it:

platynui-cli list-providers
platynui-cli info --format json
platynui-inspector

What is PlatynUI?

PlatynUI is a Robot Framework library and toolset to inspect, query, and control native desktop UIs across Windows, Linux, and macOS. It ships with:

  • A CLI for XPath queries, highlighting, screenshots, keyboard/pointer input
  • A GUI inspector to explore the UI tree and attributes
  • Python bindings to integrate with Robot Framework test suites

Why PlatynUI?

  • Consistent, cross-platform API surface
  • Works with native accessibility stacks
  • XPath-like queries to find elements

Vision and direction

This repository is a ground‑up rewrite of the original project (see https://github.com/imbus/robotframework-PlatynUI), keeping the vision but modernizing the architecture and tooling.

We’re building PlatynUI to be:

  • Robot Framework‑first: a clean keyword library with simple Python packaging and installation.
  • Cross‑platform at the core: shared logic in Rust for performance, determinism, and safety; Python exposes the library to Robot Framework.
  • Query‑centric: an XPath 2.0‑inspired language tailored for desktop UIs with a streaming evaluator and predictable document‑order semantics.
  • Uniformly modeled: a single UI model with namespaces (control, item, app, native), typed attributes, and discoverable patterns (e.g., Focusable, WindowSurface, Invoke, Text).
  • Provider‑based: native OS providers (Windows UIA, Linux AT‑SPI, macOS AX) plus room for external providers (e.g., JSON‑RPC) and fast mock providers for tests.
  • Tooled for productivity: a CLI for diagnostics/automation, a GUI Inspector for exploring the tree and crafting queries, and a server façade later on.
  • Reliability‑oriented: pointer/keyboard profiles, motion/acceleration and timing controls, highlighting and screenshots for feedback, and typed errors to reduce flakiness.
  • Extensible: hook points for custom providers and functions; as we leave preview, public APIs will stabilize.

Expect differences to the original project’s API and keywords during the preview phase—capabilities converge, but names and behaviors may change as the new core matures.

Package docs

  • CLI: packages/cli/README.md
  • Inspector: packages/inspector/README.md
  • Native Python bindings: packages/native/README.md

Documentation (design notes)

  • Architecture & Runtime Concept (German): docs/architekturkonzept_runtime.md
  • Implementation Plan (German): docs/architekturkonzept_runtime_umsetzungsplan.md
  • Pattern Catalogue (German): docs/patterns.md
  • Provider Checklist (draft): docs/provider_checklist.md
  • Windows UIA Provider – Design: docs/provider_windows_uia_design.md

Contributing

Contributions are welcome. Please see CONTRIBUTING.md for guidelines. Development notes and deeper build instructions live in the repository docs and package READMEs.

License

Apache-2.0. See LICENSE in this repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework_platynui-0.2.0.dev1.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotframework_platynui-0.2.0.dev1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file robotframework_platynui-0.2.0.dev1.tar.gz.

File metadata

File hashes

Hashes for robotframework_platynui-0.2.0.dev1.tar.gz
Algorithm Hash digest
SHA256 63bdcbc0d501e4973a9b63f4c3c326a938a98bb5cde9cb509cfb35854e980db3
MD5 125c0389d8933a8aa5826bcf84c7b1cc
BLAKE2b-256 2efbaf609f12a0a64132460f0468dec084272252c29f7a7a05aa0ad5cd83557a

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.2.0.dev1-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.2.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 710fefa36d688086e2588edc01cfcee0683b8fcce7e74e3c06859ac9055d7c7c
MD5 cf9e57583906d46b237ad0d1f6a5e6d9
BLAKE2b-256 057e97a0c5b3cf9d076d1bde536f2c7165a9189038af044bd86faf393714c054

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page