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.1.0.tar.gz (118.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.1.0-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: robotframework_vibium-0.1.0.tar.gz
  • Upload date:
  • Size: 118.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for robotframework_vibium-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5772c2f1cea0d574879c3fe8e0ae0d7083e3666bc1e8896cb98560cd2c7daad4
MD5 676dacbfd547d867102d22e5635f19ed
BLAKE2b-256 0f7ea7485b03cab68d88d94271fe7ffcfc65212fbc7b3834a68b996e99ca5759

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_vibium-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8986ae7c07a5eee33aab8da1be53ef990005fd0f91e04162b03ff127e020a90
MD5 6841966f27feb0c56619ebc78c784e64
BLAKE2b-256 48ea5abb4496d2d063ee4c2ef60c4298a9e4217f2a3bc2dd1c427d99525ec7af

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