Skip to main content

PyClickerRPA

A visual UI automation & testing tool. Automate Windows apps and Android devices/emulators by what's on screen — image/text matching + mouse/keyboard (or ADB) input — then turn those flows into a visual test framework with assertions, visual-regression baselines, HTML/JUnit reports, and a web console for remote runs.

Python/PySide6, started as a port of a Qt/C++ AutoClicker (still reads/writes the same .json task format).

Install

pip install PyClickerRPA

Optional extras:

pip install "PyClickerRPA[ocr]"   # PaddleOCR — find-text / read-text steps
pip install "PyClickerRPA[web]"   # FastAPI + uvicorn — web console

Entry points

autoclicker                          # desktop GUI (flow editor / list editor / test tab)
autoclicker-run task.json --window "Notepad"   # headless run against a window
autoclicker-run task.json --adb                # run against an Android device (adb)
autoclicker-testkit suite.json --report out.html --junit out.xml   # run a test suite
autoclicker-web --suites-dir examples          # web console at http://127.0.0.1:8000

Automation engine

  • Targets: any visible window, the whole screen (multi-monitor + high-DPI aware), or an Android device/emulator via ADB (--adb [serial]).
  • Image matching: OpenCV template match with self-healing by default — template → multi-scale → ORB feature match fallback (survives scaling / minor UI changes); transparent-mask templates (PNG alpha) ignore don't-care regions. Per-step matchMode = robust / template / feature.
  • Also: pixel-color checks, optional PaddleOCR text find / read-to-variable.
  • Smart wait: wait_stable waits until the screen (or an ROI) stops changing — replaces guessed sleeps (fast when ready, patient when slow).
  • ~30+ step types: click image/text/position, click-all, relative/offset clicks, wait / random / wait-stable, drag / long-press / pinch / scroll, key / type / hotkey, loop / goto / while / do-until, if image/text/color/ count/var with true/false branching (if-else), set-var, read-text→variable, activate-window, HTTP request, run-Python-script, call sub-task, groups, and a stop step to end a run — with retry / repeat / until policies.

Authoring (desktop GUI)

Drag-and-drop node flow graph (condition nodes have true/false branch ports for visual if-else; a terminal stop node ends the flow) and an interoperable step list with a full per-step dialog; an action recorder (global hooks), snippet library, task packages (.zip with templates), on-preview coordinate/color picking, template crop, single-step test run; global hotkeys (F6 run/stop, ESC stop), scheduler, and an image/color monitor/trigger with tray icon; a Test tab to load and run visual test suites.

Visual test framework (autoclicker.testkit)

Turn automation into tests:

  • Assertions: image / text / color present-or-absent, variable comparison.
  • Visual regression: baseline diff (first run captures the baseline; later runs flag changed-pixel ratio and emit a baseline|actual|heatmap image).
  • Cases & suites: declarative JSON suites or pytest fixtures (screen, visual); data-driven cases (a data table / CSV runs the case per row).
  • Reports: self-contained HTML (embedded screenshots + per-step timeline, optional GIF) and JUnit XML for CI; retries mark flaky.
# pytest style
def test_login(screen, visual):
    screen.assert_image("assets/login_btn.png")
    screen.assert_text("Username")
    visual.check("login.png", tolerance=0.02)

Web console (autoclicker-web)

Browser UI to trigger suites (single or batched), watch live per-line logs and per-case results, schedule recurring runs, list ADB devices and grab screenshots, browse persisted run history, and open the HTML report — all served by FastAPI with a zero-build vanilla-JS front end.

Notes

  • Host is Windows (Win32 capture + SendInput); ADB targets are cross-platform via the adb CLI (must be on PATH).
  • OCR's first run downloads PaddleOCR models (~100 MB).
  • Some target windows may require running as administrator.

License

MIT

Metadata

Release files for PyClickerRPA 0.3.0

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

Source distribution (sdist)

Source distribution for PyClickerRPA 0.3.0
File Size Uploaded Provenance Actions
pyclickerrpa-0.3.0.tar.gz 102.4 kB Without provenance Details for pyclickerrpa-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for PyClickerRPA 0.3.0
File Interpreter ABI Platform Actions
pyclickerrpa-0.3.0-py3-none-any.whl Python 3 none any Details for pyclickerrpa-0.3.0-py3-none-any.whl

Total release size: 206.8 kB

Release files / pyclickerrpa-0.3.0.tar.gz

Download URL pyclickerrpa-0.3.0.tar.gz
Size 102.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2bc1f1c862a9648116334d0cad59d70f4e74e75a3ecae33bc947faea44f48e75
BLAKE2b-256 checksum
How to use checksums
eeb5d1aeb31b852c8aec9b351a797a0381a98399ea5c09c759a39c9829ba6eaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / pyclickerrpa-0.3.0-py3-none-any.whl

Download URL pyclickerrpa-0.3.0-py3-none-any.whl
Size 104.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed0836d73ffa3fe89f11e4e5cace9078436c9aa990770e70ec03f836f2582804
BLAKE2b-256 checksum
How to use checksums
8b14d4a66f4030f605ccbc912fa3d983e5343654e44661615ecad7ac5e9f6226
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Security for PyClickerRPA 0.3.0

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.

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