Keyword Library Reference
Complete reference for all Robot Framework keywords provided by aitester_bdd.AITester.
Lifecycle
| Keyword |
Purpose |
Given I start verification "${name}" |
Initialize a named verification (Suite Setup) |
Given I start scenario "${name}" at "${url}" |
Begin scenario with entry URL |
Given I start scenario "${name}" |
Begin scenario without entry URL |
Then I finalize verification |
Walk the rule DAG (Suite Teardown) |
Rule definition
| Keyword |
Purpose |
I define rule "${name}" |
Open a named rule block |
And I declare parents "${names}" |
Declare parent rules (comma-separated) |
And I set retry ${max} delay ${ms} |
Guard retry-redo configuration |
And set rule timeout ${ms} |
Per-rule deadline (ms) |
And set child scope "${css}" |
CSS prefix for child rules |
And I set guard policy "${policy}" |
abort or default (skip) |
And I pause interrupts |
Suppress interrupt dismissal |
And I scope interrupts "${selectors}" |
Override dismiss list |
And screenshot on enter |
Capture on rule start |
And screenshot on fail |
Capture on rule failure |
State checks
All state check keywords work as Given (guard), And (continuation), or Then (observation).
URL
| Keyword |
Checks |
url contains "${pattern}" |
URL includes substring |
url matches "${regex}" |
URL matches regex |
url does not contain "${pattern}" |
URL excludes substring |
Element existence
| Keyword |
Checks |
selector exists "${css}" |
Element attached to DOM |
selector does not exist "${css}" |
Element absent |
Count
| Keyword |
Checks |
count eq "${css}" "${n}" |
Exactly N elements |
count at least "${css}" "${n}" |
At least N elements |
count at most "${css}" "${n}" |
At most N elements |
Text
| Keyword |
Checks |
has text "${css}" "${text}" |
Exact text (trimmed) |
contains "${css}" "${substring}" |
Text includes substring |
matches "${css}" "${regex}" |
Text matches regex |
not contains "${css}" "${text}" |
Text excludes substring |
Table
| Keyword |
Checks |
table headers "${css}" "${h1\|h2\|h3}" |
Pipe-delimited header match |
Element state
| Keyword |
Checks |
visible "${css}" |
Element is visible |
hidden "${css}" |
Element is hidden |
enabled "${css}" |
Form element enabled |
disabled "${css}" |
Form element disabled |
checked "${css}" |
Checkbox/radio checked |
CSS class / Attribute
| Keyword |
Checks |
has class "${css}" "${class}" |
Class present |
not class "${css}" "${class}" |
Class absent |
attr eq "${css}" "${expected}" attr=${name} |
Attribute equals |
attr contains "${css}" "${substring}" attr=${name} |
Attribute includes |
| Keyword |
Checks |
input value "${css}" "${value}" |
Input field value |
select selected "${css}" "${value}" |
Selected option |
Network
| Keyword |
Checks |
last status "${code}" |
HTTP status code |
last body contains "${text}" |
Response body substring |
Shell
| Keyword |
Checks |
last shell exit "${code}" |
Exit code of last shell command |
last shell stdout contains "${text}" |
Stdout substring |
last shell stdout matches "${regex}" |
Stdout regex |
last shell stderr contains "${text}" |
Stderr substring |
Semantic (LLM)
| Keyword |
Checks |
semantic "${criterion}" |
AI judges page text against criterion |
visual semantic "${criterion}" |
AI judges screenshot against criterion |
LLM response
| Keyword |
Checks |
llm response contains "${text}" |
Last LLM response includes text |
llm response semantic "${criterion}" |
AI judges LLM response |
Actions
| Keyword |
Does |
When I open "${url}" |
Navigate |
When I reload |
Reload page |
When I go back |
Browser back |
When I add url params "${params}" |
Append query params |
When I click locator "${css}" |
Click element |
When I click text "${text}" |
Click by visible text |
When I double click locator "${css}" |
Double-click |
When I type "${value}" into "${css}" |
Type text |
When I type "${value}" into "${css}" secret |
Type (masked in logs) |
When I fill locator "${css}" "${value}" |
Fill (alias for type) |
When I select "${value}" from "${css}" |
Select dropdown |
When I check "${css}" |
Check checkbox |
When I uncheck "${css}" |
Uncheck checkbox |
When I hover "${css}" |
Mouse hover |
When I focus "${css}" |
Focus element |
When I press keys "${css}" ${keys} |
Keyboard |
When I upload file "${path}" into "${css}" |
File upload |
When I scroll down |
Scroll page |
When I wait for idle |
Wait for network idle |
When I take screenshot |
Capture screenshot |
When I set stepper "${css}" "${n}" |
Click increment N times |
When I select date "${iso}" |
Date picker navigation |
When I evaluate js "${script}" |
Execute JavaScript |
When I run shell "${cmd}" |
Execute shell command |
When I ask LLM "${prompt}" |
Query LLM with page context |
Explore
| Keyword |
Does |
When I explore "${story}" |
LLM-driven exploration rule |
When I explore and author "${story}" output=${path} |
Explore + write suite |
Configuration
| Keyword |
Does |
And I configure interrupts dismiss=${css} |
Add dismiss selector |
And I configure state setup action=${type} ... |
Suite-level setup action |
And I register hook "${name}" at "${point}" ... |
Post-extract transform |
Artifacts (capture pipeline)
| Keyword |
Does |
And I register artifact "${name}" ... |
Declare a capture artifact |
And I set artifact options "${name}" ... |
Configure artifact (dedupe, output) |
Then I extract fields ... |
Capture fields from current page |
Then I extract table ... |
Capture table rows |
Then I emit to artifact "${name}" |
Push record to artifact |
And I set quality gate for "${name}" ... |
Set min_records/filled_pct assertions |