OKW Web Selenium
Selenium WebDriver plugin for OKW4Robot — the driver-agnostic keyword library for Robot Framework.
This package provides WebSe_* widget implementations that translate
OKW keywords (SetValue, ClickOn, VerifyValue, ...) into Selenium
WebDriver calls for Chrome, Firefox, Edge and other browsers.
Deutsche Version: README_de.md
Installation
pip install robotframework-okw-web-selenium
This automatically installs robotframework-okw4robot (core) and
robotframework-seleniumlibrary as dependencies.
Quick Start
*** Settings ***
Library okw_web_selenium.library.OkwWebSeleniumLibrary
*** Test Cases ***
Login Test
StartApp MyApp
SelectWindow LoginDialog
SetValue Username admin
SetValue Password secret
ClickOn Login
VerifyValue Status Logged in
StartApp loads the app YAML (locators/MyApp.yaml). If the YAML contains a
__self__ section with the adapter class and browser parameter, the browser is
opened automatically — no separate StartHost needed.
All keywords come from the core (okw4robot). This package only provides
the Selenium-specific widget implementations — you never import individual
keyword modules.
How It Works
OKW4Robot keyword This package (WebSe_*)
───────────────── ──────────────────────
SetValue "Name" "Smith" → WebSe_TextField.okw_set_value("Smith")
└→ Selenium: clear + input_text
ClickOn "Login" → WebSe_Button.okw_click()
└→ Selenium: click_element
VerifyValue "Status" "OK" → WebSe_Label.okw_get_value()
└→ Selenium: get_text → polling loop
The YAML locator file determines which WebSe_* class is used for each
GUI object:
# locators/MyApp.yaml
MyApp:
LoginDialog:
Username:
class: okw_web_selenium.widgets.webse_textfield.WebSe_TextField
locator: { id: user_input }
Password:
class: okw_web_selenium.widgets.webse_textfield.WebSe_TextField
locator: { id: password_input }
Login:
class: okw_web_selenium.widgets.webse_button.WebSe_Button
locator: { css: "button[type=submit]" }
Widget Classes
| Class | HTML Elements | Key Methods |
|---|---|---|
WebSe_TextField |
<input>, <textarea> |
set_value, type_key, get_value, delete |
WebSe_Button |
<button>, <input type=button> |
click, double_click, get_text |
WebSe_CheckBox |
<input type=checkbox> |
click, set_value, get_value |
WebSe_ComboBox |
<select>, custom dropdowns |
select, get_value, get_list_count |
WebSe_ListBox |
<select multiple>, <ul> lists |
select, get_value, get_list_count |
WebSe_RadioList |
<input type=radio> groups |
select, get_value |
WebSe_Label |
<span>, <div>, <p>, <label> |
get_value, get_text |
WebSe_Link |
<a> |
click, get_text |
WebSe_Table |
<table> |
get_cell_value, get_row_count, get_headers |
WebSe_MultilineField |
<textarea>, contenteditable |
set_value, type_key, get_value |
All widget classes inherit click, move_over, get_tooltip, get_label,
get_attribute, get_placeholder from WebSe_Base.
| BrowserControl | Browser host | start, stop, select_window |
| UrlBar | Address bar | set_value (navigate to URL) |
Full reference: docs/widgets_common.md
Web-Only Keywords
These keywords are available only with OkwWebSeleniumLibrary (not in the
core OKW4RobotLibrary):
| Keyword | Description |
|---|---|
ExecuteJS |
Execute raw JavaScript in the browser context |
RemoveAds |
Remove ad iframes/overlays via JS + MutationObserver |
RemoveAds
Removes ad elements from the current page. Without arguments, targets common Google Ads selectors. With arguments, each argument is a CSS selector for elements to remove.
A MutationObserver is installed to automatically remove ads that load
asynchronously after the initial page load. One call per page is enough.
# Default (Google Ads):
OnFailIgnoreNOISE RemoveAds
# Custom selectors:
OnFailIgnoreNOISE RemoveAds div.custom-banner iframe[src*="ad-network"]
Best used with OnFailIgnoreNOISE in test setup — if the page has no ads,
the keyword simply removes nothing and continues.
Documentation
- docs/README.md – Documentation overview
- docs/widgets_common.md – WebSe_* class reference
- docs/Web_Widget_Matrix.md – HTML element → widget mapping
- docs/radiolist.md – RadioList locator strategies
- docs/docs_host_app_config.md – Host/App YAML configuration
- docs/executejs-snippets.md – JavaScript snippets for ExecuteJS
For core documentation (keywords, contracts, timeouts, sync strategy) see robotframework-okw4robot.
Project Structure
robotframework-okw-web-selenium/
src/okw_web_selenium/
library.py # OkwWebSeleniumLibrary (extends OKW4RobotLibrary)
adapter.py # SeleniumAdapter (browser lifecycle)
widgets/
webse_base.py # WebSe_Base (shared Selenium logic)
webse_textfield.py # WebSe_TextField
webse_button.py # WebSe_Button
webse_checkbox.py # WebSe_CheckBox
webse_combobox.py # WebSe_ComboBox
webse_listbox.py # WebSe_ListBox
webse_radiolist.py # WebSe_RadioList
webse_label.py # WebSe_Label
webse_link.py # WebSe_Link
webse_table.py # WebSe_Table
webse_multilinefield.py
host/
browsercontrol/ # BrowserControl + UrlBar
locators/ # Built-in YAML locators (Chrome, WidgetsDemo, ...)
tests/
robot/ # 53 Robot Framework integration tests
docs/
License
- Community (non-commercial): see LICENSE
- Commercial: see COMMERCIAL_LICENSE.md
- FAQ: docs/license_faq.md
Metadata
Release files for robotframework-okw-web-selenium 0.4.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| robotframework_okw_web_selenium-0.4.6.tar.gz | 24.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robotframework_okw_web_selenium-0.4.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.6 kB
Release files / robotframework_okw_web_selenium-0.4.6.tar.gz
| Download URL | robotframework_okw_web_selenium-0.4.6.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cc2d966b08488fd7139133bc9f51d35cccf3a5cc3f4f00027077d685bd22057
|
|
BLAKE2b-256 checksum How to use checksums |
60d75add1b921d4f9c37c2964ffcac844caa6aee4f5637267c3e418b190afc55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency logRelease files / robotframework_okw_web_selenium-0.4.6-py3-none-any.whl
| Download URL | robotframework_okw_web_selenium-0.4.6-py3-none-any.whl |
|---|---|
| Size | 28.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1a5f1340340f5202635927881370eff9472a8a72a4cbb560d8caf309a789833
|
|
BLAKE2b-256 checksum How to use checksums |
14efa380c7d9dfe41d8c92f62cfbc5c003f6fdb13bfd6c3affb49c6442bb8b12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 10, 2026.
Transparency log