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.2-cp313-cp313-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.13Windows x86-64

robotframework_platynui-0.9.2-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.2-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.2-cp312-cp312-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.12Windows x86-64

robotframework_platynui-0.9.2-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.2-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.2-cp311-cp311-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.11Windows x86-64

robotframework_platynui-0.9.2-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.2-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.2-cp310-cp310-win_amd64.whl (15.9 MB view details)

Uploaded CPython 3.10Windows x86-64

robotframework_platynui-0.9.2-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.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 301258148f5feb9419f8d6d4a652a8066660fe3454ad0165d1d5dd493f1f7605
MD5 7478f98286adad4eb26ea7e41d367d3d
BLAKE2b-256 b3f9e47cabd55880b7dbe284e0e9e91952c72591abc914c2fa725464fd9c5c29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bbb8f77ef7b1a9fbdc15953b2a8df047567c2164979779ed500c56a51538b5eb
MD5 f965a4a3b7df742d242c79df26e263ea
BLAKE2b-256 a0924611f0aaad8f0a26e8e1229499cf5b11147ef9d1c65b8a2a5b9cbb3c1706

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 942150c6eed42523f03f27ff2b932d2f15a23a89dd66365027a29d67d2b67f43
MD5 4bd5dcab9af4770964e218bf7bc57cbf
BLAKE2b-256 b7ac99e7098fd64b395056779ca7c2acb15a69ff75aba9c705160ef4bbd2ff51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 86c1a557eda1271bc3c372187f26e8e00f7e73355521d3b6962fae6a4a6e6f56
MD5 bf9a0f2c7e401feabfd1ff3fc6ae9bc6
BLAKE2b-256 07d7235f536fd541577f9f96f76cb22a3cfd4e0d067e03bd6f337476fb50bd30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b56ce23a36419c4d8020297150b24eaf9e074d0fd743226eefc78389925ee59
MD5 4eda9a8e5133b6fcde5ac76a613c9775
BLAKE2b-256 ff33c7cced1f479563afd11b19f4f64e10093d1cca969caf138ad96cbcb7fa7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e0f779df5f9889346aaf0512858a3d6121cfd7711c1380cb8b2e91e29fd5e5e
MD5 25075849240e288088e61f717ad4d48f
BLAKE2b-256 af4f816441a5136af18c4ebbdd29f89c1f4f997c40016b332f0b78a51ab66bcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 df39deab887be68a512ff5d389c2acfb3291686c181e2f957ec8c2503a87c51f
MD5 103d71eea99e914ab22fcd18519e32ab
BLAKE2b-256 d57eed5cad8f3ee4b561521104243ea698e99c866528d696d8a48e8fe53a71cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 62547f32d9d32a439218fdaf39d04a3d792de1a343f2030ea6a2d918fee349ec
MD5 b470749013dd87951dcfafcf21a2c81f
BLAKE2b-256 ce37d738d3051bf5630d208e23c98e78347dd2bca6a816ae6a20b22f9ff1476b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ddce8b448ee2bda278cc60c0ce261851831579d61de9b2c5466b5867c1bd19d2
MD5 240940a4c6c8ddfc4b34f82f19563d70
BLAKE2b-256 b049795dd7fe3f770c22e1bf16d3ee39a903db8701a3b2a94ab594176ab23b72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ceaa27e1bda25e1e179222d5a2a435ce90c6c04d3b7a4341e1a99e39979fefb
MD5 ac4624d0bd0945079a759792889815a0
BLAKE2b-256 3e93573cd34e133cea20a66073771d5f3a81293258ae846c8cfaa01e4a0f301a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c02f2afac5e95cb29d136875a03f06f28149a84115c715e8fa7c054b5186c9c4
MD5 a8bffaa3b70fc185ef4ab6c4a7360831
BLAKE2b-256 7184a7e0a6a22364640ef01e63de721d750836f1d3ca98bcc2c7ca64a37ddc3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4b72894f5cea0a0f0ec1678e465e0b113ec86e31264fe8285ddf6a7fa97085fa
MD5 2c3400f0868a6ea444e2f6ba9404f509
BLAKE2b-256 56eed5f587252e641162cb0740132ef073c4c948c7346a10bdfc6d18081494a9

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