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.1.tar.gz (57.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.1-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: robotframework_vibium-0.1.1.tar.gz
  • Upload date:
  • Size: 57.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.1.tar.gz
Algorithm Hash digest
SHA256 85dedf746381018ab39166ee7836444b38c67791442b07aff32f3e59bc43f607
MD5 7c4543a2c94bf3ed0cb53edfc142b5d8
BLAKE2b-256 1b81320ebb2a492ab1efd6eee651b2e59d823fb950f822dbd5a1fb661beff07c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for robotframework_vibium-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c0085d47c32e31df815ac0dbf1860e8b6507c4fa3796590dab87c4bf2dc0e1a5
MD5 283c76d1954f119aa878ec2e6ac4af65
BLAKE2b-256 c0b01a585e23a04ff5cee10873996348c7268420828803afdf66f20f019540aa

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