Skip to main content

Robotframework-FlaUI Library

License
Python Builds (x86)
Python Builds (x64)
Tests
Python python_312 python_313 python_314 python_315
Robotframework
PyPi

Introduction

Robotframework-FlaUI is a keyword based user interface automation testing library for Windows applications like Win32, WinForms, WPF or Store Apps. It's based on the FlaUI user interface automation library.

The library supports Microsoft UI Automation interfaces UIA2 and UIA3 (default). Elements are located by XPath. Mouse keywords also accept absolute screen coordinates or X/Y offsets from an element's clickable point. Keyboard keywords can send input globally when no XPath is given.

Installation

Install the latest stable release:

pip install --upgrade robotframework-flaui

Usage

*** Settings ***
Library    FlaUILibrary    uia=UIA3    screenshot_on_failure=True    screenshot_mode=FILE    screenshot_suffix=jpg    timeout=1000

Library import arguments:

Argument Default Description
uia UIA3 Microsoft UI Automation interface: UIA2 or UIA3
screenshot_on_failure True Take a screenshot when a keyword fails
screenshot_dir output Screenshot directory relative to the Robot output directory
timeout 1000 Default element find timeout in milliseconds
screenshot_mode FILE Persist screenshots as FILE or BASE64
screenshot_suffix jpg Screenshot file type when mode is FILE: png, jpg or jpeg

Mouse examples:

Click    ${XPATH}
Click    x=100    y=200
Click    ${XPATH}    x=10    y=20

Keyboard examples:

Press Key    t'Text'    ${XPATH}
Press Key    t'Text'
Press Keys    ${KEYS}

A full keyword reference is available in the keyword documentation.

Dependencies and python support

The robot framework FlaUI is supposed to support the current Python 3 versions.

Required dependencies

See dependencies from Documentation

Runtime dependencies are listed in requirements.txt:

  • Robot Framework 3.2.2 or newer
  • Python.Net 3.0.0 or newer
  • robotframework-pythonlibcore
  • typing-extensions

Python.Net Wrapper Issues

Robotframework-Flaui 1.x

  • With the release of Python.Net version 2.5.2, Python 3.9 support was implemented for the first time.
  • However, no official support for Python 3.9 has been released yet.
    • For more information see the issue #1389
  • If there are problems installing the Python.Net library, please use Python 3.8 instead.
  • This is only a potential problem by all robotframework-flaui 1.x versions which are implemented by Python.Net 2.5.2

Robotframework-Flaui 2.x

  • Sometimes an AccessViolationException wil be occure on latest Python.Net Version v3.0.1
    • For more information see the issue #1977
    • A workaround is to set Python's memory allocation environment variable "PYTHONMALLOC=malloc"

Documentation

Keyword HTML and XML docs are generated by libdoc.py during the build blueprint stage and published from the documentation GitHub branch to GitHub Pages.

RFHUB2

RFHUB2 is an opensource project aimed to provide nice and easy way of collecting, browsing and sharing documentation of existing keywords written in RobotFramework and python. Built with Material-UI and FastAPI, served by Uvicorn.

Keyword XML files live on the documentation branch under docs/keywords/. Check out that branch and import them with RFHUB2-CLI:

rfhub2-cli .\docs\keywords\
rfhub2-cli .\docs\keywords\<VERSION>

GUI Inspector Tools

There are various tools around which help inspecting application that should be ui tested or automated.

Some of them are:

Examples

Examples of use can be found in the atests folder.

Development

Preconditions

  • Install Python, if not already installed.
  • Python 3.8 or newer is supported (CI covers 3.8–3.15, x86 and x64).

Requirement files

File Purpose
requirements.txt Runtime dependencies of the library
requirements-dev.txt Local build, lint and test tools
requirements-buildsystem.txt Builddrone
requirements-artifact-upload.txt Twine, used by the pypi blueprint stage

Dependency installation by Builddrone

Install Builddrone, then run stages from blueprint.json:

python -m pip install -r requirements-buildsystem.txt
python -m builddrone <stage>

Builddrone documentation: https://nepitwin.github.io/Builddrone/latest/

Test-Applications

Two test projects were used for the UI automation:

  • FlaUI WPF Test App 'Standard application that contains all common UI elements'
  • Notifier Test App 'Application which closes automatically after a time'

Testing locally TLDR

python -m venv .venv
.venv/Scripts/pip install -r requirements-dev.txt

cd ./atests
../.venv/Scripts/robot -v UIA:UIA3 -d ../result -P ../src -t "Element Should Be Offscreen" Element.robot

Building and testing with Builddrone

Local CI is defined in blueprint.json and executed by Builddrone:

python -m builddrone <stage>

Builddrone loads blueprint.json from the working directory, selects the named stage and runs its module steps in order. Relative paths are resolved from the directory that contains blueprint.json.

Stage Purpose
build Create .build.venv, install requirements-dev.txt, build the package into dist/, generate keyword docs into keywords/
cleanup Remove generated folders and local virtual environments
robocop Run Robot Framework lint checks via robocop_lint.py in .testing.venv
pylint Run pylint for the Python sources in src
test Run UIA2 and UIA3 acceptance tests, merge reports into result/
pypi Upload dist/*.whl and dist/*.tar.gz to PyPI (AppVeyor, git tags only)
appveyor_upload_tests Upload JUnit results to AppVeyor
appveyor_upload_failure_artifacts Zip result/ and upload it as an AppVeyor artifact on failure

The build stage writes:

  • Wheel and source distribution under dist/
  • Keyword documentation keywords/keywords.html and keywords/keywords.xml (generated by libdoc.py)

The test stage runs atests twice (UIA2 and UIA3), merges the Robot outputs with rebot into result/, copies screenshots and converts the merged report with parsly.py.

robocop, pylint and test share .testing.venv. build uses .build.venv. pypi uses .upload.venv.

Example full local CI run:

python -m pip install -r requirements-buildsystem.txt
python -m builddrone build
python -m builddrone robocop
python -m builddrone pylint
python -m builddrone test

AppVeyor (appveyor.yml) runs the same four stages on every branch except documentation. The pypi stage runs only when the build is triggered by a git tag.

Contributing

Code changes are welcome via pull request. Release tagging, PyPI upload and keyword documentation publishing are not part of this workflow.

  • add or update keywords in folders
    • src/FlaUILibrary/flaui/module
    • src/FlaUILibrary/keywords
  • add or update tests in folder atests
  • update CHANGELOG.md under [Unreleased]
  • open a pull request against main

Acknowledgements

FlaUI

  • Thanks to @Roemer for the passion to create and maintain the FlaUI project.
  • Thanks to FlaUI developers and maintainers for this project.

Metadata

Release files for robotframework-flaui 6.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robotframework-flaui 6.0.1
File Size Uploaded Provenance Actions
robotframework_flaui-6.0.1.tar.gz 328.6 kB Without provenance Details for robotframework_flaui-6.0.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for robotframework-flaui 6.0.1
File Actions
robotframework_flaui-6.0.1-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for robotframework_flaui-6.0.1-cp315-cp315-win_amd64.whl
robotframework_flaui-6.0.1-cp315-cp315-win32.whl CPython 3.15 CPython 3.15 Windows x86-32 Details for robotframework_flaui-6.0.1-cp315-cp315-win32.whl
robotframework_flaui-6.0.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for robotframework_flaui-6.0.1-cp314-cp314-win_amd64.whl
robotframework_flaui-6.0.1-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details for robotframework_flaui-6.0.1-cp314-cp314-win32.whl
robotframework_flaui-6.0.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for robotframework_flaui-6.0.1-cp313-cp313-win_amd64.whl
robotframework_flaui-6.0.1-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for robotframework_flaui-6.0.1-cp313-cp313-win32.whl
robotframework_flaui-6.0.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for robotframework_flaui-6.0.1-cp312-cp312-win_amd64.whl
robotframework_flaui-6.0.1-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for robotframework_flaui-6.0.1-cp312-cp312-win32.whl
robotframework_flaui-6.0.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for robotframework_flaui-6.0.1-cp311-cp311-win_amd64.whl
robotframework_flaui-6.0.1-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for robotframework_flaui-6.0.1-cp311-cp311-win32.whl
robotframework_flaui-6.0.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for robotframework_flaui-6.0.1-cp310-cp310-win_amd64.whl
robotframework_flaui-6.0.1-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for robotframework_flaui-6.0.1-cp310-cp310-win32.whl
robotframework_flaui-6.0.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for robotframework_flaui-6.0.1-cp39-cp39-win_amd64.whl
robotframework_flaui-6.0.1-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details for robotframework_flaui-6.0.1-cp39-cp39-win32.whl
robotframework_flaui-6.0.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for robotframework_flaui-6.0.1-cp38-cp38-win_amd64.whl
robotframework_flaui-6.0.1-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details for robotframework_flaui-6.0.1-cp38-cp38-win32.whl

Total release size: 6.1 MB

Release files / robotframework_flaui-6.0.1.tar.gz

Download URL robotframework_flaui-6.0.1.tar.gz
Size 328.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9d5c69c1d02397698e6609a591cdf41b71d127c8132dbbb1366c6436d4708338
BLAKE2b-256 checksum
How to use checksums
c6fe8836f83c8dcc0e20ef85a90d664a6842034bbe5125086c36eae1267201a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / robotframework_flaui-6.0.1-cp315-cp315-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp315-cp315-win_amd64.whl
Size 367.1 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
fe29dfb21f17c8ee8b2c8cb768644750d0f6426ac02af5f3e15e6831df7717e8
BLAKE2b-256 checksum
How to use checksums
4aca5613d635b85d130fc5debb95c9cc04e5db19a76cd153d7c5f39c4b75117a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.0rc2

Release files / robotframework_flaui-6.0.1-cp315-cp315-win32.whl

Download URL robotframework_flaui-6.0.1-cp315-cp315-win32.whl
Size 367.1 kB
Tags CPython 3.15 Windows x86-32
SHA-256 checksum
How to use checksums
7a375486c44636e61fbdafc904f3816215f93faf900a05e3b1f48b8f6a51f80f
BLAKE2b-256 checksum
How to use checksums
3090129440be8822072c7958431bff5aeb3515c02462c25b916d9e4c1816bb3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.0rc2

Release files / robotframework_flaui-6.0.1-cp314-cp314-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp314-cp314-win_amd64.whl
Size 367.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
97f756f0d5540b5f307cca6454ae42f5156c586c69f095ce2c594e58567786ec
BLAKE2b-256 checksum
How to use checksums
c28bf829310c1f3fb6fc3a523acee74362b30217f66b7d8dfe3efa9db18bb869
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / robotframework_flaui-6.0.1-cp314-cp314-win32.whl

Download URL robotframework_flaui-6.0.1-cp314-cp314-win32.whl
Size 367.1 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
c163c3ee92719b98aaf885cb788e882709077c7d792a06dfc41866e1afd2c42f
BLAKE2b-256 checksum
How to use checksums
403bd5296b4704ad1d17fe15c1b6be2acebd837efbf44d951ff4656cbc481376
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / robotframework_flaui-6.0.1-cp313-cp313-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp313-cp313-win_amd64.whl
Size 356.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
150e700a8ebe6f4b8de5da4a80f49a0076171cccad572c7ee34dabca890a9e4a
BLAKE2b-256 checksum
How to use checksums
275997e38262f809812c160fd52adf0442a82d0e256df500b03074db37089d68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

Release files / robotframework_flaui-6.0.1-cp313-cp313-win32.whl

Download URL robotframework_flaui-6.0.1-cp313-cp313-win32.whl
Size 356.9 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
31f340797233b02eb1905ff20374322cd46139901eb2d47fc797fbc9e374b9f7
BLAKE2b-256 checksum
How to use checksums
70a7f6c51c020b726a2c6be80f4b9886899973dbdb1964234accda46af85ed3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.9

Release files / robotframework_flaui-6.0.1-cp312-cp312-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp312-cp312-win_amd64.whl
Size 356.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
656e2e63be67f4349ee7e8828eae50f8d403b9f807f3585ae6a63b19b7488e54
BLAKE2b-256 checksum
How to use checksums
98717027c638cc3346809c1bd1fd82f030a06049f013a971257077b33aefa0fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / robotframework_flaui-6.0.1-cp312-cp312-win32.whl

Download URL robotframework_flaui-6.0.1-cp312-cp312-win32.whl
Size 356.9 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
ffd6708bee6ccb0d3f8609c5d390e055d0eac080bbe486ca1c540f42fd2681ac
BLAKE2b-256 checksum
How to use checksums
7d1537704073c74c4c4bb95ea8ab89d40ac10be07e44a4c51a26613c1551e6fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / robotframework_flaui-6.0.1-cp311-cp311-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp311-cp311-win_amd64.whl
Size 356.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2c43e4f8a8fe91df97af26f4058faafe583e920609e21aded233136ff1a4bad9
BLAKE2b-256 checksum
How to use checksums
f8b1b224dba14ff84ea7200e0e496b64519b60ab5def56c5640914b3b244f342
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / robotframework_flaui-6.0.1-cp311-cp311-win32.whl

Download URL robotframework_flaui-6.0.1-cp311-cp311-win32.whl
Size 356.9 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
66bc1bcc3c389a207ad8ad6c6595741b6e8109838ab467527d5fd67dfec11ae5
BLAKE2b-256 checksum
How to use checksums
8a741f68d11b9e5be90fc6b5ede7d3785f7771812dffe69f5c7ff3fd02c4d20f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.9

Release files / robotframework_flaui-6.0.1-cp310-cp310-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp310-cp310-win_amd64.whl
Size 356.9 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
324e2d65fc07d74b3c23ceda0e0e8d954a355c436d6fa38c9caa2ab07718eb43
BLAKE2b-256 checksum
How to use checksums
34c49785756f1ed816a96f3824f892cac21f09ba5b79f66448b28e0393764f7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / robotframework_flaui-6.0.1-cp310-cp310-win32.whl

Download URL robotframework_flaui-6.0.1-cp310-cp310-win32.whl
Size 356.9 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
fd2d637e6b59fdb2209e5b5063c70d3fbaa052ef2329f9de58a073ced029fe08
BLAKE2b-256 checksum
How to use checksums
b90dbd0ba2107a0982a6ff28379ce6100f74d9be8edc6dd834ea2d0c5df20dc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / robotframework_flaui-6.0.1-cp39-cp39-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp39-cp39-win_amd64.whl
Size 356.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
86bee70a3eff3ba0395d7c84bdac799681456c5c31707242575b2cc36384c0cd
BLAKE2b-256 checksum
How to use checksums
23a44627be0c7d721d76d24adad5640da5d97127ee0981d7607ad1a9194c9a9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.13

Release files / robotframework_flaui-6.0.1-cp39-cp39-win32.whl

Download URL robotframework_flaui-6.0.1-cp39-cp39-win32.whl
Size 356.9 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
6aaa4c3364e347a0d000dce891765acbd6db9aa84afbd3e73a8ebbed99696b36
BLAKE2b-256 checksum
How to use checksums
d07c1e5b6b33cec7bef8e1a79147d6364335b903e071f1b1444f229c89bc592e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.13

Release files / robotframework_flaui-6.0.1-cp38-cp38-win_amd64.whl

Download URL robotframework_flaui-6.0.1-cp38-cp38-win_amd64.whl
Size 356.8 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
637770a6528fe8a7e3e0ea9f14ba5edadd3d3d08da929691fa6425c92718ffa1
BLAKE2b-256 checksum
How to use checksums
da9f5b31a1bec217ed10089797311abc254ee5c9fca838ea38916dd25efa62ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Release files / robotframework_flaui-6.0.1-cp38-cp38-win32.whl

Download URL robotframework_flaui-6.0.1-cp38-cp38-win32.whl
Size 356.8 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
8b4b226ccd5f13a28ad0cd6ec249492ff1155b8a9e174324ea2ce270b489d060
BLAKE2b-256 checksum
How to use checksums
a97bb0bbd7226a1b3ab1eebd3aa5c976d9da6c83112d3f65b6d0e6455e08cdae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.10

Security for robotframework-flaui 6.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

6.0.1 This release

17 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page