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 Distribution

robotframework_platynui-0.8.0.tar.gz (859.0 kB view details)

Uploaded Source

Built Distributions

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

robotframework_platynui-0.8.0-cp313-cp313-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.13Windows x86-64

robotframework_platynui-0.8.0-cp313-cp313-win32.whl (15.5 MB view details)

Uploaded CPython 3.13Windows x86

robotframework_platynui-0.8.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.8.0-cp313-cp313-musllinux_1_2_aarch64.whl (14.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

robotframework_platynui-0.8.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.8.0-cp313-cp313-manylinux_2_28_aarch64.whl (14.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

robotframework_platynui-0.8.0-cp312-cp312-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.12Windows x86-64

robotframework_platynui-0.8.0-cp312-cp312-win32.whl (15.5 MB view details)

Uploaded CPython 3.12Windows x86

robotframework_platynui-0.8.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.8.0-cp312-cp312-musllinux_1_2_aarch64.whl (14.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

robotframework_platynui-0.8.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.8.0-cp312-cp312-manylinux_2_28_aarch64.whl (14.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

robotframework_platynui-0.8.0-cp311-cp311-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.11Windows x86-64

robotframework_platynui-0.8.0-cp311-cp311-win32.whl (15.5 MB view details)

Uploaded CPython 3.11Windows x86

robotframework_platynui-0.8.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.8.0-cp311-cp311-musllinux_1_2_aarch64.whl (14.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

robotframework_platynui-0.8.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.8.0-cp311-cp311-manylinux_2_28_aarch64.whl (14.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

robotframework_platynui-0.8.0-cp310-cp310-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.10Windows x86-64

robotframework_platynui-0.8.0-cp310-cp310-win32.whl (15.5 MB view details)

Uploaded CPython 3.10Windows x86

robotframework_platynui-0.8.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.8.0-cp310-cp310-musllinux_1_2_aarch64.whl (14.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

robotframework_platynui-0.8.0-cp310-cp310-manylinux_2_28_aarch64.whl (14.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

File details

Details for the file robotframework_platynui-0.8.0.tar.gz.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0.tar.gz
Algorithm Hash digest
SHA256 577c6b840c7426e8b3487bf764b9f54953372927f01c2282b0effdeb633c23dd
MD5 ca4af1a7fdcb69165bb28f377bf9d72d
BLAKE2b-256 0bb46b0155c1bdb7099ed353ee28a484b5b7f41d5122c6be46007a02b3bcb4cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 37b5562b71e59563779cd190358e4b46951a7666a43c258b22e04130cf62d155
MD5 cd9688471d5b39de4405d4c58968324b
BLAKE2b-256 788964b873187dea772f47853ced60ebdb2077a49c97a9576c5208959c81331e

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 42599cd10eacd50bdf1af14148d63e013e0a77583949aeaf3199a7911135f5db
MD5 9025ac7a4b2c03de48354305aa712f00
BLAKE2b-256 aa0159ba0a67d58b40471d2902d5a0429b5ecab83749c0559e0d7ce9c67fa6d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a198401c8d5767b8d94fb4969ac49abe4d20a336238c31730ab441767c47ff63
MD5 a47bbea9427122c4f2e356a08e4c4ec5
BLAKE2b-256 f22019716994b615896a5e2f131d7377c31b76f860c43bdd4a698bc7fe82c73c

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 65836b38a4491fd57897aba769dc5176cab46eaaa987e1def8697995fba4608f
MD5 9cc021fbfbbb48bfd55d741c5c3f4dc1
BLAKE2b-256 bd29cc8d76ebd1f2ee9869a5ba54300cf3d086fcd31ac4e8ec2ec70ba08af2b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aaa3531ed903ddfec957db13ae582208f10810a6dbe78ecde309f3e1d20ec269
MD5 a2b16bed9fb7966bf0b7f8a9a29bec9c
BLAKE2b-256 0b412aae89e790be015383b812a5d74308fb84aa608a1168f509a7c7c57d212b

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 896a2d3362841a4496535641a7857f028b272cefa4cdf8a76b546164df777d41
MD5 8e912a4b989c99e9777e5ef562943d16
BLAKE2b-256 8018247861cded52ea1e6d6b43e2c355a2439120ae9dc075ec60259f7efad810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1b8d70d1091c8ba65aee71a685217f731b20e6289aad669bf65795676b7bea4c
MD5 7ec1f922208ccdff940ff38f883bb66d
BLAKE2b-256 e1abdd55e678fae319fc166ad376654c12fd954607443211ce1920c99d009c25

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 c4eb76b3c2eed95f5e81038fe42581b7a9f8a76e45bf1e7f70d23d3fc856719c
MD5 9ec500937e89aa5c2216e284d460e789
BLAKE2b-256 dcaac1d0f3525880ed83415c4df895c8c75e8ae6480932dc69d39c9013935a3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5ada8830ed44d8fda1413c38f95443e79fbb026c895a78e8cd5ebaf0bf665ac8
MD5 9dd3e23808ed37b09a6307ca09f9d17b
BLAKE2b-256 b175af0003b631bf0294e162568ed6094814d978d0503cc4a48dfcd3ab0d6f61

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 159e91409c08e13cc8f7725fc51f73fed58f256764362a085ec38d121898c756
MD5 1e133b991659ea90e8b387b7da2c600e
BLAKE2b-256 f9ff3882ce631e05242d65ece6869947ed66f07088374578b0f7605a5b32bc03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad658d652ac7d3906eeff223b2d7ff97030adf6a334b5d29580a502e9120e4f9
MD5 779df52a78ff4fbafcf1949c3cd2d355
BLAKE2b-256 01f47e50b5f4de200336b789ecf3b7a039c42170c0216c42dfeda95e2602d457

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37343d699ba1dd2021c56b62159e87a2faf3be5c7c8eb3a782cf5172bf9f519e
MD5 f8e4194a815c517415296681f64c2b1e
BLAKE2b-256 ada0f4e3c9481629039f37f92932df1c2985b12d41bf1d74a26f1f5f889d1cdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 444f793878193566887ad3fa683fbd329bf1170f94a85d003e413b3b4c7f72c5
MD5 54ef2b69050a097c9f0e73222df664d3
BLAKE2b-256 2d9a525cc63e853a941c350bbb39efb89b1c5804650c32e3b351be978efdaf73

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 9a1f2ac890431bc8609bf9e786da43216e3f38c3faf94b59d21a74640559ad9a
MD5 5f49d3c68afe5bbbda35551563638bb1
BLAKE2b-256 138843b08e1931f18a7672e7b0180f77013a7689e5af70abdddfceb33e835079

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6d464a0782b02de5cafeedcc347f2f37a4ca32ca7fb6d06c88754df975aaf2ae
MD5 238cbc62cbd3c35594ab702ddc2c0ddf
BLAKE2b-256 cf5c60f51d101eaa473c09e624c623f11d502d6204f98d1671db3636d790ff5d

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 13b33b6aad5cd0c711ce0ee639741aa60d5c4b5c44b0d494fab5a788b79f76ec
MD5 9c6349e6ac3b238b174af44b9022b7bf
BLAKE2b-256 c1fafe6f39e2e6f165e86eb06466887860984e91d583d76bf8d590b99b03aac8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee67feb663691ef4b9aa2ca99bdd8dca7953013df1ae3bbd4afb7b6abd24a155
MD5 e34a5b81a75362fae40bddf6583990d3
BLAKE2b-256 43a30c63719184ce72b33de99ffe4ba52d5e90ab5d2c57ad6b007f034b65a229

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b91cd25b2d311bdc84fa5c566b7ffb85153cc33965330ba3f5f59ee27f0a86be
MD5 512c4db2a183757ec2d8ad1e7d641b93
BLAKE2b-256 b9ee1ca529f0ab885e045f95900418ff0a8be3fff9ed354788ca9d11a96687d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 edba17c5cef92b086592c488d85fb71b65403bb79e5a00fea050b5e7da92e390
MD5 34dc0c3f8eaa793677f6c5e98b923368
BLAKE2b-256 59ca93dec425025483af71401e5334767b7925bbd84b505019fa700266a2c534

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 8358e11b0f30b373509e3712f58974ce0e1d7efdd6746d50c3af93bc3f6d9792
MD5 feadd084353a327d7d3a3d7b40cf9bec
BLAKE2b-256 a59e86194528b2c015a0ce9d6fc644a1783e7788a095cb4fbcbfd33a3dbc1585

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 866db09126c794ed7755c5c7a09cca72bd172ab31097ed0032bfc85362c4c2a2
MD5 71265847742c44674dfdcef8580f24c3
BLAKE2b-256 8a14ed2adf89097f61c83d4b6a32dfe35c881dd72824b85b6e876ee41653ee45

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1013cbcb3839f22611e132c6b99741bfa5c3ee30276b3b6615385ee11da42ae
MD5 53c6e79db8de26b4219d6b8829080c2c
BLAKE2b-256 0e0da8e44bfaccdd5d36175964ab7ae54ccaaea4f4d6c5f4dc1060762a0a55ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3600b452c3929c162dbf6db17a99f18108d43cd58052d15738fd78ffa6b226c
MD5 c5f046baef5b055b4840745743d017bd
BLAKE2b-256 68038782afd389847560a054dba389f7745150a2abb5e4f505acefb5878fc0ac

See more details on using hashes here.

File details

Details for the file robotframework_platynui-0.8.0-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for robotframework_platynui-0.8.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 314fd04988ac50807b441bb27c96cae0df5082db9318c39bf49bb4f74fd494ef
MD5 3e4b861282c9a72f2564831a55285ee9
BLAKE2b-256 b9399081c31f704090509fffa666050bfb939f574e09c9f31e9f1fcb14e9ffa1

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