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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

robotframework_platynui-0.9.1-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.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8a7994951891397657fea3d7e50d1136b8c68bc74d3b1f08aedf8555d5fc0453
MD5 b998cb7a563bc37f60728328013420ea
BLAKE2b-256 a6a583439ca78e377e318c8020d62f9d4f9a0904ddef34ca0c8a326bdc3ccc18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dcfcac76b24c83ede8fc55225a05be25971aa0b8c8206108bf33adf26f000b92
MD5 29f0f73746c96867efcb85e43f51d07c
BLAKE2b-256 992cdfc3d23f9933bee679e1f6e23fc08ddb3bc5d7257fee8839f30a7e822f4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c006ae5daed3f74f919b3b2c026ba7f19f0c59ab1c3a4bc8e26eb5e119adca0b
MD5 f792e5d447e3bf2113ab6e5782eb8d9e
BLAKE2b-256 2f1857d87cbb3ee9f04a53d597eb169a3229b9c917ce844b6be4a4cd60918523

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b4cf98e4a8d4a6a62475c8b86f93347c98062fcbde873cfaca08a4032ffb3fcd
MD5 996d81f8eafd921cffa1cad2b14a0699
BLAKE2b-256 04d90f9aaae59ba685e8a110a453f060c8f370b30c00862850d9277598c6ac04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 31c64478acd5d928eddc8662b1add81e7228fc4839052671f4554e20f6074c07
MD5 78aeb51ca37a8ef849c0674f0124101c
BLAKE2b-256 8d85a2cc926ecd5c7f72cb3a91b9a77542935b59ccb0071bfb60cd303d496c2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21eab8ab7cc47fcf485ae3e4bb764e7bfd2b785b9b9a7f6b788a9e63a3ca2389
MD5 f2624f86e3041645b903342edb31661b
BLAKE2b-256 2337308003cc317e2ddfa225acb40cfc47bb6c4ad3f548cd3b7ee4eb93371ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 60fd73908f744038aadfdc83a6478a9e2b8c0fe437ad43be23f5f7f38a03d9bd
MD5 e1187e4a894be4a6bb85cd63eaeeb2c5
BLAKE2b-256 919cf19609e7d5898e30b06f75e4ff5f032634111af0f957fc00bd1a31e27097

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 81cd807f7919f1dc77defc422448b716132a83ab3ea600c3db2109356526fca0
MD5 fc724e3ca38f66cecb964eba1071389a
BLAKE2b-256 4b76482a3c019cf40a30d40dfea0c581fe972cb798d44f9ec9e8ddb56c755cac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c060579f46b3441e001c31e1830fd8343f1e502a4eac6b37edc4c3d2d6fbda7d
MD5 1e3fec49c8a0b9c585764a4e75e51122
BLAKE2b-256 036de1e8631d94bfc178008760d6f755308b975afe38210ea50be87272078070

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 290ddc589829946437e1420b33dbba536dacd543d7cc53a162b8cdcbe97d5640
MD5 21c82054802a28c0f69ff7769ad92488
BLAKE2b-256 6eadf7fea27c4e7543e050c876f32e3680ec84aa4866d5abce9f7987821b61aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7faa9aa4520705fd81120ed6e95a124d997caec48e18ef044cf11e05531bcfe4
MD5 cfa69721baa73d0765093cff855f1af8
BLAKE2b-256 a9228cb5bdc1e92ce139b40d5b04c02bf5011aa5cbdf6eccdb69fb2a18658483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.9.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c90eb2f64c9b4d25eb95ee5fcbe646ffd005ab31fa4e85dabde4e5a08734ab4
MD5 650363dea737c68de33099e9bb1a25a2
BLAKE2b-256 83e09eb293f758cbaf5aba709f2bd8b7803377a77c1693998d0b130a4a6b7de3

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