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:
- CSS selector (default, no prefix) — forwarded as the positional
selectorargument ofpage.find. CSS is Vibium's default strategy. - 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:
- Ergonomic — the last positional is the value.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85dedf746381018ab39166ee7836444b38c67791442b07aff32f3e59bc43f607
|
|
| MD5 |
7c4543a2c94bf3ed0cb53edfc142b5d8
|
|
| BLAKE2b-256 |
1b81320ebb2a492ab1efd6eee651b2e59d823fb950f822dbd5a1fb661beff07c
|
File details
Details for the file robotframework_vibium-0.1.1-py3-none-any.whl.
File metadata
- Download URL: robotframework_vibium-0.1.1-py3-none-any.whl
- Upload date:
- Size: 49.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0085d47c32e31df815ac0dbf1860e8b6507c4fa3796590dab87c4bf2dc0e1a5
|
|
| MD5 |
283c76d1954f119aa878ec2e6ac4af65
|
|
| BLAKE2b-256 |
c0b01a585e23a04ff5cee10873996348c7268420828803afdf66f20f019540aa
|