Skip to main content

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

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

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)

Source distribution for robotframework-okw-web-selenium 0.4.6
File Size Uploaded
robotframework_okw_web_selenium-0.4.6.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robotframework-okw-web-selenium 0.4.6
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

0.4.7

2 release files

This release

0.4.6 This release

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page