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.3.18

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 Element, Fill Element 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 Element    input[name='q']
    Click Element    role:button
    Click Element    text:Log in
    Click Element    xpath:(//*[@name='q'])[1]
    Click Element    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 Element    role:button    text:Log in
    Click Element    role:textbox   label:E-mail
    Click Element    .nav           role:link       text:Home

Fill Element: value rules

Fill Element 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 Element    input#email                            user@example.com
    Fill Element    role:textbox    label:E-mail           user@example.com

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

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

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

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

Fill Element    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.2.0.tar.gz (62.8 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.2.0-py3-none-any.whl (49.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: robotframework_vibium-0.2.0.tar.gz
  • Upload date:
  • Size: 62.8 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.2.0.tar.gz
Algorithm Hash digest
SHA256 d25d11d231c491555a56ff844d210602ed548a57ffa878ebf3ff4169db953881
MD5 fbd5495da6309b5dc084ee45cace95fb
BLAKE2b-256 62a1335879fc5feae7dba720d444eec093580b99467d2fa3e8460ffdc32e4fb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_vibium-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 224b9219cbc50485ecfbdd1063aac5c519b74f4c10cd0fa84efc683743bbb9bd
MD5 4182b2fa9e4ebe78cd34641e339dcead
BLAKE2b-256 65a4597cc81ec5504b603683217f3239c95a9f7bf2870a406294e01126dfb3d9

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