Skip to main content

robo-appian

robo-appian (robo appian / robo_appian) by Dinil Mithra makes Appian pages easier to automate with readable Python. It is a Python automation and testing library for Appian applications.

It is designed for people who know their web application and only need basic Python to start writing automation.

Quick example

from robo_appian import AppianPage


def test_update_item(page: AppianPage) -> None:
    page.textbox(label="Description").fill("Example item")
    page.date(label="Start Date").fill("10/15/2026")
    page.radio(label="Priority").select("High")
    page.button(name="Submit").click()

The goal is to describe the page using the same text a user sees.

Install

pip install robo-appian
robo-appian install-browser firefox

Python 3.12 is required. robo-appian uses robo-automation for generic browser and pytest infrastructure.

Common controls

page.textbox(label="Description").fill("Example item")
page.textbox(placeholder="example@example.com").fill("user@example.com")
page.textbox("Employee").select(search_text="John", value="John Smith")
page.date(label="Start Date").fill("10/15/2026")
page.radio(label="Priority").select("High")
page.button(name="Next").click()

Textboxes, dates, and selection components automatically move focus out after a value changes so Appian can process it.

What belongs where?

Your application tests
        ↓
robo-appian       Appian controls and Appian behavior
        ↓
robo-automation   Browser and pytest infrastructure
        ↓
Playwright

Your application project should own application URLs, login policy, business workflows, assertions, and test data.

Documentation

Start with the beginner guides:

  • Installation
  • Quick Start
  • Your First Test
  • Choosing a Component
  • Troubleshooting

Advanced architecture and pytest integration are documented separately for framework maintainers.

Full documentation:

https://dinilmithra.github.io/robo-appian/

License

robo-appian is licensed under the MIT License.

Error handling

Appian-specific library failures use RoboAppianError, which is also a RoboAutomationError. Normal tests should usually let pytest report these errors. If you need recovery or diagnostic handling, see How to use RoboAppianError for examples using code, details, to_dict(), and exception chaining.

Runtime boundary for application projects

Application projects should normally import automation APIs only from robo_appian.

from robo_appian import AppianPage, AppianRuntime, RoboAppianError

AppianRuntime provides the Appian-facing browser/session lifecycle used by advanced consumer fixtures. It intentionally hides lower browser and performance implementation classes. Normal test authors usually only need the page fixture and component APIs shown above.

Semantic browser recorder

The library now includes robo_appian.recorder: live semantic inspection, recording normalization, explicit step review and deterministic pytest generation. Use the sibling robo-recorder project's README for installation, the local demo, supported mappings and live-browser validation steps. Recorder mechanics stay in this library; generated tests do not depend on CORE testcase patterns.

Recorder commands

The recorder CLI and demo are owned by this library; no robo-recorder package is required to capture, review or generate tests.

robo-appian recorder record --url "https://your-appian-host/suite/sites/your-site" --output .\recordings\request
robo-appian recorder review .\recordings\request\recording.json
robo-appian recorder validate .\recordings\request\recording.json
robo-appian recorder generate .\recordings\request\recording.json --output .\tests\generated\test_request.py

Use python -m robo_appian.cli recorder --help if the console command is not on PATH. robo-appian recorder demo opens the library-bundled local example. Playback still requires consumer fixtures and application Login/Logout hooks; see the sibling robo-recorder project for an example. Existing browser-install commands remain available. The old robo-recorder CLI forwards to these same library functions.

Metadata

Release files for robo-appian 0.1.33

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

Source distribution (sdist)

Source distribution for robo-appian 0.1.33
File Size Uploaded
robo_appian-0.1.33.tar.gz 60.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robo-appian 0.1.33
File Interpreter ABI Platform
robo_appian-0.1.33-py3-none-any.whl Python 3 none any Details

Total release size: 144.3 kB

Release files / robo_appian-0.1.33.tar.gz

Download URL robo_appian-0.1.33.tar.gz
Size 60.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9ec2e8499bedd2aa6e71d3f16defcd575a6e453ec05a01820480e160c1e2a3ab
BLAKE2b-256 checksum
How to use checksums
a2c84a951092def7f1241d7362a5cd73d401a0ecf10911fd8243c101b4e4f118
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.12.0 Windows/11

Release files / robo_appian-0.1.33-py3-none-any.whl

Download URL robo_appian-0.1.33-py3-none-any.whl
Size 84.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
033d3404dccccb9327aa8c6c6e561249906915840f06d1997274bfd46ee6f9a0
BLAKE2b-256 checksum
How to use checksums
704963caf04f30a931abc7da43d4ff145dd7feb260b29b5c8af43ce51c5f962f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.12.0 Windows/11
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