Implementation:MarketSquare Robotframework browser WebApp State Keywords
| 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
- Repository: MarketSquare_Robotframework_browser
- File: Browser/keywords/webapp_state.py
- Lines: 1-241
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