Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:MarketSquare Robotframework browser WebApp State Keywords

From Leeroopedia
Knowledge Sources
Domains Browser Automation, Web Storage
Last Updated 2026-02-12 05:40 GMT

Overview

Provides Robot Framework keywords for performing CRUD operations on browser localStorage and sessionStorage.

Description

The WebAppState class extends LibraryComponent (defined at line 26) and contains eight public keywords plus one internal helper:

localStorage keywords:

  • LocalStorage Get Item -- Retrieves a value from localStorage by key. Supports assertion operators for inline validation (e.g., ==, !=, contains). Decorated with @with_assertion_polling and @assertion_formatter_used for retry-based assertions.
  • LocalStorage Set Item -- Saves a key-value pair to localStorage.
  • LocalStorage Remove Item -- Removes a specific item from localStorage by key.
  • LocalStorage Clear -- Removes all items from localStorage.

sessionStorage keywords:

  • SessionStorage Get Item -- Retrieves a value from sessionStorage by key. Supports assertion operators for inline validation. Decorated with @with_assertion_polling and @assertion_formatter_used.
  • SessionStorage Set Item -- Saves a key-value pair to sessionStorage.
  • SessionStorage Remove Item -- Removes a specific item from sessionStorage by key.
  • SessionStorage Clear -- Removes all items from sessionStorage.

Internal helper:

  • eval_js -- Executes a JavaScript expression via the gRPC EvaluateJavascript stub. All public keywords delegate to this method with appropriate window.localStorage or window.sessionStorage calls.

All keywords accept an optional frame_selector argument to target storage within a specific iframe context.

Usage

Use these keywords when your tests need to set up, verify, or tear down browser storage state. Common scenarios include pre-populating authentication tokens in localStorage, verifying that application state persists correctly across page navigations, and cleaning up storage between test cases to ensure isolation.

Code Reference

Source Location

Signature

class WebAppState(LibraryComponent):
    def eval_js(self, script: str, frame_selector: str | None = None) -> Any: ...

    @keyword(name="LocalStorage Get Item", tags=("PageContent", "Assertion", "Getter"))
    @with_assertion_polling
    @assertion_formatter_used
    def local_storage_get_item(
        self,
        key: str,
        assertion_operator: AssertionOperator | None = None,
        assertion_expected: Any | None = None,
        message: str | None = None,
        frame_selector: str | None = None,
    ) -> Any: ...

    @keyword(name="LocalStorage Set Item", tags=("Setter", "PageContent"))
    def local_storage_set_item(
        self, key: str, value: str, frame_selector: str | None = None
    ): ...

    @keyword(name="LocalStorage Remove Item", tags=("Setter", "PageContent"))
    def local_storage_remove_item(self, key: str, frame_selector: str | None = None): ...

    @keyword(name="LocalStorage Clear", tags=("Setter", "PageContent"))
    def local_storage_clear(self, frame_selector: str | None = None): ...

    @keyword(name="SessionStorage Get Item", tags=("PageContent", "Assertion", "Getter"))
    @with_assertion_polling
    @assertion_formatter_used
    def session_storage_get_item(
        self,
        key: str,
        assertion_operator: AssertionOperator | None = None,
        assertion_expected: Any | None = None,
        message: str | None = None,
        frame_selector: str | None = None,
    ) -> Any: ...

    @keyword(name="SessionStorage Set Item", tags=("Setter", "PageContent"))
    def session_storage_set_item(
        self, key: str, value: str, frame_selector: str | None = None
    ): ...

    @keyword(name="SessionStorage Remove Item", tags=("Setter", "PageContent"))
    def session_storage_remove_item(self, key: str, frame_selector: str | None = None): ...

    @keyword(name="SessionStorage Clear", tags=("Setter", "PageContent"))
    def session_storage_clear(self, frame_selector: str | None = None): ...

Import

from Browser.keywords.webapp_state import WebAppState

I/O Contract

LocalStorage Get Item

Direction Name Type Description
Input key str Named key of the item in localStorage
Input assertion_operator AssertionOperator or None Optional assertion operator (==, !=, contains, etc.)
Input assertion_expected Any or None Expected value for assertion comparison
Input message str or None Custom error message for assertion failure
Input frame_selector str or None Selector pointing to an iframe to use that frame's localStorage
Output return Any The stored value (string or None if key does not exist)

LocalStorage Set Item

Direction Name Type Description
Input key str Key name under which to store the value
Input value str String value to store
Input frame_selector str or None Selector pointing to an iframe to use that frame's localStorage

LocalStorage Remove Item

Direction Name Type Description
Input key str Key name of the item to remove
Input frame_selector str or None Selector pointing to an iframe to use that frame's localStorage

LocalStorage Clear

Direction Name Type Description
Input frame_selector str or None Selector pointing to an iframe to use that frame's localStorage

SessionStorage Get Item

Direction Name Type Description
Input key str Named key of the item in sessionStorage
Input assertion_operator AssertionOperator or None Optional assertion operator (==, !=, contains, etc.)
Input assertion_expected Any or None Expected value for assertion comparison
Input message str or None Custom error message for assertion failure
Input frame_selector str or None Selector pointing to an iframe to use that frame's sessionStorage
Output return Any The stored value (string or None if key does not exist)

SessionStorage Set Item

Direction Name Type Description
Input key str Key name under which to store the value
Input value str String value to store
Input frame_selector str or None Selector pointing to an iframe to use that frame's sessionStorage

SessionStorage Remove Item

Direction Name Type Description
Input key str Key name of the item to remove
Input frame_selector str or None Selector pointing to an iframe to use that frame's sessionStorage

SessionStorage Clear

Direction Name Type Description
Input frame_selector str or None Selector pointing to an iframe to use that frame's sessionStorage

Usage Examples

Robot Framework

*** Settings ***
Library    Browser

*** Test Cases ***
LocalStorage CRUD Operations
    New Page    https://example.com
    LocalStorage Set Item    authToken    abc123
    ${value}=    LocalStorage Get Item    authToken
    Should Be Equal    ${value}    abc123
    LocalStorage Get Item    authToken    ==    abc123    Token should match
    LocalStorage Remove Item    authToken
    ${removed}=    LocalStorage Get Item    authToken
    Should Be Equal    ${removed}    ${None}
    LocalStorage Clear

SessionStorage CRUD Operations
    New Page    https://example.com
    SessionStorage Set Item    sessionKey    sessionValue
    ${value}=    SessionStorage Get Item    sessionKey
    Should Be Equal    ${value}    sessionValue
    SessionStorage Remove Item    sessionKey
    SessionStorage Get Item    sessionKey    ==    ${None}
    SessionStorage Clear

Storage Operations In Iframe
    New Page    https://example.com
    LocalStorage Set Item    key    value    frame_selector=iframe[name="test"] >>> body
    ${item}=    LocalStorage Get Item    key    frame_selector=iframe[name="test"] >>> body
    Should Be Equal    ${item}    value

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment