Skip to main content

PlatynUI is a library for Robot Framework that enables easy and cross-platform desktop UI automation with a comprehensive set of keywords for interacting with desktop applications.

Project description

robotframework-PlatynUI

PyPI - Version PyPI - Python Version


Table of Contents

Disclaimer

This project is still under development and should not be used productively yet.

At the current state expect:

  • bugs
  • missing features
  • missing documentation

Feel free to contribute, create issues, provide documentation or test the implementation.

Project Description

PlatynUI is a library for Robot Framework, providing a cross-platform solution for UI test automation. Its main goal is to make it easier for testers and developers to identify, interact with, and verify various UI elements.

We aim to provide a Robot Framework-first library.

Why PlatynUI?

  • Cross-platform capability with consistent API across Windows, Linux, and MacOS
  • Direct access to native UI elements
  • Simplified element identification
  • Builtin ui spy tool

Testable Frameworks

  • Linux
    • X11
    • AT-SPI2
  • Windows
    • Microsoft UI Automation (UIA)
  • MacOS
    • Accessibility API

Extendable for any other ui technologies.

Installation

pip install robotframework-platynui

Spy Tool

After installation, start the spy tool on the command line with this command:

PlatynUI.Spy
  • Start any application
  • Identify elements and properties in your application
  • Access elements with it's properties and build locators to access and simulate ui applications

Demo

Application Example

@locator(name="Rechner")
class CalculatorWindow(Window):
    @property
    @locator(AutomationId="num5Button")
    def n5(self) -> Button: ...
    @property
    @locator(AutomationId="num6Button")
    def n6(self) -> Button: ...
    @property
    @locator(AutomationId="plusButton")
    def plus(self) -> Button: ...
    @property
    @locator(AutomationId="equalButton")
    def equal(self) -> Button: ...
*** Settings ***
Library     PlatynUI
Variables   apps.calculator

*** Test Cases ***
Test Addition Of Two Numbers
    Activate    ${calculator.n5}
    Activate    ${calculator.plus}
    Activate    ${calculator.n6}
    Activate    ${calculator.equal}
    Get Text    ${calculator.result}    should be    11

Roadmap

Roadmap will soon be displayed here

Contributing

We welcome contributions to the project! Here are some ways you can contribute:

  • Report Bugs: Use GitHub Issues to report bugs.
  • Suggest Features: Use GitHub Issues to suggest new features.
  • Submit Pull Requests: Fork the repository, make your changes, and submit a pull request. Please ensure your code follows our coding standards and includes tests.

Contribution guidelines are currently in creation and will be available soon.

Setup Dev Environment

If you want to start now, you can setup a dev environment with following steps:

  • Prerequisites:

    • .NET 8.0
    • Python 3.10 or higher
    • Hatch
  • Clone the repository from Github

  • Create Hatch environment (also creates the .NET environment)

    cd robotframework-PlatynUI
    hatch env create
    

Versioning

We use Semantic Versioning for versioning. For the versions available, see the tags on this repository.

Changelog is maintained using conventional commits.

License

robotframework-PlatynUI is distributed under the terms of the Apache 2.0 license.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

robotframework_platynui-0.9.0-cp313-cp313-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.13Windows x86-64

robotframework_platynui-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

robotframework_platynui-0.9.0-cp313-cp313-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

robotframework_platynui-0.9.0-cp312-cp312-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.12Windows x86-64

robotframework_platynui-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

robotframework_platynui-0.9.0-cp312-cp312-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

robotframework_platynui-0.9.0-cp311-cp311-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.11Windows x86-64

robotframework_platynui-0.9.0-cp311-cp311-musllinux_1_2_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

robotframework_platynui-0.9.0-cp311-cp311-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

robotframework_platynui-0.9.0-cp310-cp310-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.10Windows x86-64

robotframework_platynui-0.9.0-cp310-cp310-musllinux_1_2_x86_64.whl (16.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

robotframework_platynui-0.9.0-cp310-cp310-manylinux_2_28_x86_64.whl (14.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

Details for the file robotframework_platynui-0.9.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 de201fcb7e8dcf417f60af676c73c4f08240a0a18621cbf60e9c851ddf50ee35
MD5 ca1e97dbd800205e9248c877551890d4
BLAKE2b-256 e27984d1503607554c55fcb22ef253b9aee03dc760965a6eb01e652bd5b3c0c9

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8313b4d9f1f6f311e88c0dd1309a87e032096f2d743cb752bb0db6b2c87160e0
MD5 c5979fbf3adc5ad55a0eca3f0ef89271
BLAKE2b-256 44a5035e022beaddb1e89ef1b9f22e1c50db5e65643660ea54df41e0ddc1969e

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9721a3faae46b13218aae7525ac06e7f132bec83c55504aa86d2fcad16362c89
MD5 684d68e3923bb1bfa1c08aea2a24512e
BLAKE2b-256 3d08608420b0694d7be17515a8a1c5d2e3ee3417cb43b1b1f673b53165980571

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d094abfd19f8a7a006e380d56a6d5a0da3953a5c397ddcb34ac41d2b5414f40e
MD5 851afde98ed1b0b0c92852be008c5fbf
BLAKE2b-256 a375248ed3917ee4e7dcfa19f2aa16fd2e49f67e2a4dc31311c334c96e03a83f

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0233c6e9908329ceb218d5186c843250e3a21b67174abfe143d59114a944eb21
MD5 8331786f2d1f7286cc15a7aea35de659
BLAKE2b-256 77638e663a84b357f700a138263cd0822509073de1db7515145009885ba6c606

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 507f5b4ac6a3ab27e19e2a1d285ac9d3067cb161ef92d402844e899bc3d11ae3
MD5 c236ff6a339c39c76aa1d9ad2c410cf9
BLAKE2b-256 e77d9ca449951ec5f78519cae67a831e0f3f304fef788b9a81e51bc418e2b505

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1809e7feaea38bc1d936bcb433b19e80d1a40656aa622fe95e83f6bdf84fcf04
MD5 bbcdca6842feeba208434b2ed39323a8
BLAKE2b-256 241f4e768de7503d8532dade38eac7fc6d986f1eaaba3e870960383fd36a9a75

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 595f3cec7e4818b3522d344fd6e728a14765f8b6d1ea37fdedf7154e478e4b56
MD5 cf5fb50ba145a12dead03b8afe453ea4
BLAKE2b-256 647f18a33e46f8adec2a037eea3366f1b7f679c914b8c352c30f72b314cfdd7e

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb3168205a90db511cce8e3c984e3f5aef3673b20268444902173c51bf3df828
MD5 ddbc88240167c7196a9eb35230215abb
BLAKE2b-256 bb1658faf9210a0c54791d4015c12b6ef74a0066e41b8c717a4260f27ab80fbc

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a2b5f18f3b05482e5579541a29c2aff50c7dd11988b9f2ea352d64d6a2886fc1
MD5 41c4207ac46026e422825699b9301989
BLAKE2b-256 c8d99a3b58e920e5862e2ee3266b09384fcdb33fc91de7d9570fae307e02e6ac

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d15e9f7d37cdd738bfda80002cf291b8e9ef75bc406fff7b708c6121394089e4
MD5 b8698fb13dad3acfc5b190fe95f55196
BLAKE2b-256 2609e01fbef7d203a4a938538f135cda7aa8c6eacb9dcba110b2353162a575a3

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.9.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b271cb82fd367cb4dcec4a37c49f2392229666a0463c83e9af76f62ec0d6bb78
MD5 113d066dd3eb01926eab8f265c8fab25
BLAKE2b-256 e568627e01466f4170b9d423f5651a28389f2b918742b8078cd603256d410281

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