Skip to main content

Robot Framework library powered by Vibium for AI-native browser automation.

Project description

robotframework-vibium

Robot Framework library based on Vibium for AI-native browser automation.

Status: early development (PyPI 0.x, Alpha). The public keyword set may still evolve; pin versions in production suites if you need stability.

Vision

robotframework-vibium brings Vibium's modern browser interaction model into Robot Framework through clean, composable, and maintainable keywords.

Documentation

Use this README as a quick guide and examples, and Libdoc as the source of truth for the complete API.

See keyword documentation for more details.

Installation

pip install robotframework-vibium

Compatibility

Component Supported Version
Python >=3.9
Robot Framework >=5.0
Vibium >=26.5.31

Although Robot Framework supports older Python versions, this library follows Vibium's runtime requirements and therefore requires Python 3.9 or newer.

Quick Start

*** Settings ***
Library    Vibium

*** Test Cases ***
Basic Navigation
    Open Browser
    Go To    https://example.com
    ${text}=    Get Page Text
    Should Contain    ${text}    Example Domain
    Close Browser

Locator Syntax

Targets passed to Click, Fill Text and Find Element use a prefix-based contract that maps directly to Vibium's Page.find(...) API. The : separator is preferred over = deliberately, following SeleniumLibrary's guidance, because = collides with Robot Framework's named-argument syntax.

Single locator

Two forms:

  1. CSS selector (default, no prefix) — forwarded as the positional selector argument of page.find. CSS is Vibium's default strategy.
  2. Semantic strategy (strategy:value) — forwarded as the matching keyword argument. The prefix is split on the first : only, so values may contain =, [, ] or extra : characters (essential for XPath).

Supported strategies: xpath, role, text, label, placeholder, testid, alt, title, near.

*** Test Cases ***
Single Locator Examples
    Click    input[name='q']
    Click    role:button
    Click    text:Log in
    Click    xpath:(//*[@name='q'])[1]
    Click    xpath://input[@id='email' and @type='text']

Combining multiple strategies

Every keyword accepts one or more locator tokens as separate Robot Framework arguments. They are merged into a single page.find(...) call—the same idea as combining role plus accessible name in richer browser automation APIs—and matches the Vibium CLI pattern vibium find role button --name "Log in".

Rules:

  • At most one CSS-selector positional (Vibium accepts only one).
  • Each semantic axis may appear at most once; duplicates raise an error.
*** Test Cases ***
Combined Locators
    Click    role:button    text:Log in
    Click    role:textbox   label:E-mail
    Click    .nav           role:link       text:Home

Fill Text: value rules

Fill Text supports two modes:

  1. Ergonomic — the last positional is the value.
  2. Explicit — use value=... as a Robot Framework keyword argument.

To prevent silent foot-guns, the ergonomic mode raises an error when the last positional looks like a locator (starts with a known strategy: prefix). Use value=... to disambiguate.

*** Test Cases ***
Fill Examples
    # Ergonomic: value as last positional
    Fill Text    input#email                            user@example.com
    Fill Text    role:textbox    label:E-mail           user@example.com

    # Explicit: value= kwarg
    Fill Text    role:textbox                           value=user@example.com
    Fill Text    input#password                         value=secret

    # Required when the value itself looks like a locator
    Fill Text    input#comment                          value=role:admin

    # Clear a field
    Fill Text    input#search                           value=${EMPTY}

The following is rejected with a clear error (ambiguous last positional):

Fill Text    role:textbox    label:E-mail        # ERROR: looks like 2 locators, value missing

Development

python3.9 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
pytest

End-to-end checks with real browser (from repository root):

robot --pythonpath src -d reports/acceptance tests/acceptance

Smoke-only run:

robot --pythonpath src -i smoke -d reports/acceptance tests/acceptance

See tests/acceptance/README.md for suite coverage and details.

Project Principles

  • Stable and explicit public keyword API
  • High-quality error messages for test users
  • Clean separation between session management and keyword layers
  • Fast feedback loop with unit + acceptance tests

License

Apache-2.0

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_vibium-0.3.0.tar.gz (63.7 kB view details)

Uploaded Source

Built Distribution

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

robotframework_vibium-0.3.0-py3-none-any.whl (49.2 kB view details)

Uploaded Python 3

File details

Details for the file robotframework_vibium-0.3.0.tar.gz.

File metadata

  • Download URL: robotframework_vibium-0.3.0.tar.gz
  • Upload date:
  • Size: 63.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for robotframework_vibium-0.3.0.tar.gz
Algorithm Hash digest
SHA256 053ad8d6e7228ea4cc13070e319de8acc1ac5f0d3b35a18333adae5de5617e0d
MD5 82d9dad66b0a0a7b50ffd9a9df80cef8
BLAKE2b-256 5ea6ac429429f83c71fb6701124620118bd3cff373b8f62f8ab66ad7eb9833d3

See more details on using hashes here.

File details

Details for the file robotframework_vibium-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_vibium-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4ef784eb4e7934aa17846d7495cac91adf977492dad79ff6f2248f889a735fe
MD5 95aa04feebdd9d95e44d3151b6f8a648
BLAKE2b-256 fa172950a7ef86e4e50c39a0cfb9392bb95cfcf0f91f0dc10cbb91cba1901fbb

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