Actions¶
Base Classes¶
BaseAction ¶
Bases: ABC, Generic[P, R]
Abstract base class for all wavexis actions.
An action encapsulates a single operation (e.g. screenshot, eval, pdf) that is executed against a backend.
Source code in wavexis/actions/base.py
__init__ ¶
Initialize the action with parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
P
|
Action-specific parameters. |
required |
Navigation¶
NavigateAction ¶
Bases: BaseAction[NavigateParams, None]
Action for navigating to a URL.
Source code in wavexis/actions/navigate.py
execute
async
¶
Execute the navigate action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Screenshot & Capture¶
ScreenshotAction ¶
Bases: BaseAction[ScreenshotParams, bytes]
Action for taking a screenshot of a web page.
Navigates to the URL in params, optionally executes JS, and captures a screenshot.
Source code in wavexis/actions/screenshot.py
execute
async
¶
Execute the screenshot action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Screenshot image bytes. |
Source code in wavexis/actions/screenshot.py
ScreencastAction ¶
Bases: BaseAction[ScreencastParams, list[str]]
Action for capturing screencast frames and saving them to a directory.
Source code in wavexis/actions/screencast.py
__init__ ¶
Initialize the screencast action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
ScreencastParams
|
Screencast parameters including URL, format, and duration. |
required |
output_dir
|
str
|
Directory to save captured frames. |
'screencast'
|
Source code in wavexis/actions/screencast.py
execute
async
¶
Execute the screencast capture on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
list[str]
|
List of saved frame file paths. |
Source code in wavexis/actions/screencast.py
PDF & Print¶
PDFAction ¶
Bases: BaseAction[PDFParams, bytes]
Action for generating a PDF of a web page.
Navigates to the URL in params, optionally executes JS, and generates a PDF.
Source code in wavexis/actions/pdf.py
execute
async
¶
Execute the PDF action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
PDF bytes. |
Source code in wavexis/actions/pdf.py
Evaluation & Scraping¶
EvalAction ¶
Bases: BaseAction[EvalParams, Any]
Action for evaluating a JavaScript expression on a web page.
Navigates to the URL in params, then evaluates the expression. Supports @file syntax to read expression from a file.
Source code in wavexis/actions/eval.py
execute
async
¶
Execute the eval action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
The JavaScript evaluation result. |
Source code in wavexis/actions/eval.py
ScrapeAction ¶
Bases: BaseAction[ScrapeParams, list[dict[str, Any]]]
Action for scraping multiple URLs.
Iterates over URLs, navigates to each, evaluates an expression, and collects results. Supports reading expression from a file via @file syntax.
Source code in wavexis/actions/scrape.py
execute
async
¶
Execute the scrape action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of result dicts with "url" and "result" keys. |
Source code in wavexis/actions/scrape.py
DOM¶
DOMAction ¶
Bases: BaseAction[DOMParams, Any]
Action for DOM operations.
Supports get (outer/inner HTML), query (single/all), attr get/set/remove, remove, focus, and scroll.
Source code in wavexis/actions/dom.py
execute
async
¶
Execute the DOM action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
str for "get" and "attr" actions, dict/list for "query", |
Any
|
None for set/remove/focus/scroll. |
Source code in wavexis/actions/dom.py
DOMSnapshotAction ¶
Bases: BaseAction[DOMSnapshotParams, dict[str, Any]]
Action for capturing a DOM snapshot of a web page.
Source code in wavexis/actions/dom_snapshot.py
execute
async
¶
Execute the DOM snapshot action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict containing the raw DOM snapshot. |
Source code in wavexis/actions/dom_snapshot.py
Input¶
InputAction ¶
Bases: BaseAction[InputParams, Any]
Action for performing input interactions on a web page.
Source code in wavexis/actions/input.py
execute
async
¶
Execute the input action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
None for most actions; the result of the interaction. |
Source code in wavexis/actions/input.py
Console & Debugging¶
ConsoleAction ¶
Bases: BaseAction[ConsoleParams, dict[str, Any]]
Action for capturing console messages and browser logs.
Navigates to the URL, then captures console messages and/or log entries.
Source code in wavexis/actions/console.py
execute
async
¶
Execute the console action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with "console" and/or "logs" keys containing entry lists. |
Source code in wavexis/actions/console.py
DebugAction ¶
Bases: BaseAction[DebugActionParams, Any]
Action for debugging operations.
Source code in wavexis/actions/debug.py
execute
async
¶
Execute the debug action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the debug action (breakpoint ID, listener list, or None). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the action is not recognized or required params missing. |
Source code in wavexis/actions/debug.py
Performance & Profiling¶
PerformanceAction ¶
Bases: BaseAction[PerformanceParams, dict[str, Any]]
Action for collecting performance data from a web page.
Source code in wavexis/actions/performance.py
execute
async
¶
Execute the performance action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict containing the performance data. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the action is not recognized. |
Source code in wavexis/actions/performance.py
CoreWebVitalsAction ¶
Bases: BaseAction[CoreWebVitalsParams, dict[str, Any]]
Action for measuring Core Web Vitals (LCP, CLS, INP) with scoring.
Collects LCP, CLS, INP, FCP, TTFB, TBT, and load time via PerformanceObserver and the Performance API. Computes ratings (good/needs-improvement/poor) and an overall score.
Source code in wavexis/actions/core_web_vitals.py
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | |
execute
async
¶
Execute the Core Web Vitals measurement.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with metrics, ratings, score, and budget check results. |
Source code in wavexis/actions/core_web_vitals.py
LighthouseAction ¶
Bases: BaseAction[LighthouseParams, dict[str, Any]]
Action for running a browser-based audit using CDP metrics.
Instead of requiring the Lighthouse npm package, this action collects performance metrics, accessibility tree, and SEO meta tags directly via CDP/BiDi and computes scores.
Source code in wavexis/actions/lighthouse.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 | |
execute
async
¶
Execute the audit on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with category scores and detailed metrics. |
Source code in wavexis/actions/lighthouse.py
Network¶
NetworkAction ¶
Bases: BaseAction[NetworkParams, Any]
Action for network operations.
Supports cookies get/set/delete/clear, headers, and user-agent override.
Source code in wavexis/actions/network.py
execute
async
¶
Execute the network action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
List of cookies for "cookies_get", None for other actions. |
Source code in wavexis/actions/network.py
HARAction ¶
Bases: BaseAction[HarParams, dict[str, Any]]
Action for capturing HAR data.
Navigates to a URL, captures network traffic, and returns a HAR 1.2 dict.
Source code in wavexis/actions/har.py
execute
async
¶
Execute the HAR capture action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
HAR 1.2 compliant dict with log.entries. |
Source code in wavexis/actions/har.py
HARReplayAction ¶
Bases: BaseAction[HARReplayParams, dict[str, Any]]
Action for replaying network requests from a HAR file.
Navigates to the URL, then replays each request from the HAR file using the browser's fetch API.
Source code in wavexis/actions/har_replay.py
execute
async
¶
Execute the HAR replay action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with replayed count and any errors. |
Source code in wavexis/actions/har_replay.py
ModifyRequestAction ¶
Bases: BaseAction[ModifyRequestParams, dict[str, Any]]
Action for intercepting and modifying requests in-flight.
Sets up request interception with the given pattern and modifications, then navigates to the URL.
Source code in wavexis/actions/modify_request.py
execute
async
¶
Execute the request modification action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with status indicating interception was set up. |
Source code in wavexis/actions/modify_request.py
WebSocketInterceptAction ¶
Bases: BaseAction[WebSocketParams, dict[str, Any]]
Action for intercepting WebSocket frames on a page.
Source code in wavexis/actions/websocket.py
execute
async
¶
Execute WebSocket interception on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with sent/received frames and connection info. |
Source code in wavexis/actions/websocket.py
Storage¶
StorageAction ¶
Bases: BaseAction[StorageParams, Any]
Action for storage operations (DOM, Cache, IndexedDB).
Source code in wavexis/actions/storage.py
execute
async
¶
Execute the storage action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the storage operation. |
Source code in wavexis/actions/storage.py
Emulation¶
EmulationAction ¶
Bases: BaseAction[EmulationParams, None]
Action for browser emulation operations.
Supports device emulation, viewport override, geolocation override, timezone override, and dark mode emulation.
Source code in wavexis/actions/emulation.py
execute
async
¶
Execute the emulation action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The backend to execute the action on. |
required |
Source code in wavexis/actions/emulation.py
Permissions & Security¶
PermissionsAction ¶
Bases: BaseAction[str, None]
Action for managing browser permissions.
Source code in wavexis/actions/permissions.py
__init__ ¶
__init__(params: str, action: str = 'grant', permission: str = '', url: str = '', wait: WaitStrategy | None = None) -> None
Initialize the permissions action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
str
|
Permissions parameters. |
required |
action
|
str
|
Permission action ("grant", "deny", "reset", or "query"). |
'grant'
|
permission
|
str
|
Permission name (e.g. "geolocation", "notifications"). |
''
|
url
|
str
|
URL to navigate to before the action. |
''
|
wait
|
WaitStrategy | None
|
Wait strategy after navigation. |
None
|
Source code in wavexis/actions/permissions.py
execute
async
¶
Execute the permissions action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
None. |
Source code in wavexis/actions/permissions.py
SecurityAction ¶
Bases: BaseAction[str, Any]
Action for security-related operations.
Source code in wavexis/actions/security.py
__init__ ¶
__init__(params: str, action: str = 'state', ignore: bool = True, url: str = '', wait: WaitStrategy | None = None) -> None
Initialize the security action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
str
|
Security parameters. |
required |
action
|
str
|
Security action ("state" or "ignore-cert-errors"). |
'state'
|
ignore
|
bool
|
Whether to ignore certificate errors. |
True
|
url
|
str
|
URL to navigate to before the action. |
''
|
wait
|
WaitStrategy | None
|
Wait strategy after navigation. |
None
|
Source code in wavexis/actions/security.py
execute
async
¶
Execute the security action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Security state dict for "state" action; None for "ignore_cert". |
Source code in wavexis/actions/security.py
Dialog¶
DialogAction ¶
Bases: BaseAction[str, None]
Action for handling JavaScript dialogs (alert, confirm, prompt).
Source code in wavexis/actions/dialog.py
__init__ ¶
__init__(params: str, action: str = 'accept', prompt_text: str | None = None, url: str = '', wait: WaitStrategy | None = None) -> None
Initialize the dialog action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
str
|
Dialog parameters or selector. |
required |
action
|
str
|
Dialog action ("accept" or "dismiss"). |
'accept'
|
prompt_text
|
str | None
|
Text to enter in prompt dialogs. |
None
|
url
|
str
|
URL to navigate to before the action. |
''
|
wait
|
WaitStrategy | None
|
Wait strategy after navigation. |
None
|
Source code in wavexis/actions/dialog.py
execute
async
¶
Execute the dialog action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
None. |
Source code in wavexis/actions/dialog.py
Download¶
DownloadAction ¶
Bases: BaseAction[str, bytes]
Action for intercepting file downloads.
Source code in wavexis/actions/download.py
__init__ ¶
Initialize the download action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
str
|
Download parameters or URL filter. |
required |
url
|
str
|
URL to navigate to before intercepting downloads. |
''
|
wait
|
WaitStrategy | None
|
Wait strategy after navigation. |
None
|
Source code in wavexis/actions/download.py
execute
async
¶
Execute the download interception on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
bytes
|
Downloaded file bytes. |
Source code in wavexis/actions/download.py
Tabs¶
TabsAction ¶
Bases: BaseAction[TabsParams, Any]
Action for tab management operations.
Supports listing, creating, closing, and activating tabs.
Source code in wavexis/actions/tabs.py
execute
async
¶
Execute the tabs action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
List of tabs for "list", target ID str for "new", None otherwise. |
Source code in wavexis/actions/tabs.py
Accessibility¶
AccessibilityAction ¶
Bases: BaseAction[Any, Any]
Action for accessibility tree operations.
Source code in wavexis/actions/accessibility.py
__init__ ¶
__init__(params: Any, action: str = 'tree', node_id: str = '', url: str = '', wait: WaitStrategy | None = None) -> None
Initialize the accessibility action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
Any
|
Action parameters. |
required |
action
|
str
|
Accessibility action type ("tree" or "node"). |
'tree'
|
node_id
|
str
|
Node ID for node-specific actions. |
''
|
url
|
str
|
URL to navigate to before the action. |
''
|
wait
|
WaitStrategy | None
|
Wait strategy after navigation. |
None
|
Source code in wavexis/actions/accessibility.py
execute
async
¶
Execute the accessibility action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Accessibility tree dict, node dict, or list of ancestor dicts. |
Source code in wavexis/actions/accessibility.py
CSS¶
CSSAction ¶
Bases: BaseAction[CSSActionParams, dict[str, Any] | list[dict[str, Any]]]
Action for CSS inspection operations.
Source code in wavexis/actions/css.py
execute
async
¶
Execute the CSS action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any] | list[dict[str, Any]]
|
Dict or list of dicts containing CSS data. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the action is not recognized or required params missing. |
Source code in wavexis/actions/css.py
Overlay¶
OverlayAction ¶
Bases: BaseAction[OverlayParams, None]
Action for overlay highlight and clear operations.
Source code in wavexis/actions/overlay.py
execute
async
¶
Execute the overlay action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the action is not recognized or selector is missing. |
Source code in wavexis/actions/overlay.py
Media¶
MediaAction ¶
Bases: BaseAction[MediaParams, Any]
Action for Media operations (experimental).
Source code in wavexis/actions/media.py
execute
async
¶
Execute the Media action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the Media operation. |
Source code in wavexis/actions/media.py
Cast¶
CastAction ¶
Bases: BaseAction[CastParams, Any]
Action for Cast operations (experimental).
Source code in wavexis/actions/cast.py
execute
async
¶
Execute the Cast action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the Cast operation. |
Source code in wavexis/actions/cast.py
Bluetooth¶
BluetoothAction ¶
Bases: BaseAction[BluetoothParams, Any]
Action for Bluetooth emulation operations (experimental).
Source code in wavexis/actions/bluetooth.py
execute
async
¶
Execute the Bluetooth action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the Bluetooth operation. |
Source code in wavexis/actions/bluetooth.py
WebAudio¶
WebAudioAction ¶
Bases: BaseAction[WebAudioParams, Any]
Action for WebAudio operations (experimental).
Source code in wavexis/actions/webaudio.py
execute
async
¶
Execute the WebAudio action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the WebAudio operation. |
Source code in wavexis/actions/webaudio.py
WebAuthn¶
WebAuthnAction ¶
Bases: BaseAction[WebAuthnParams, Any]
Action for WebAuthn virtual authenticator operations (experimental).
Source code in wavexis/actions/webauthn.py
execute
async
¶
Execute the WebAuthn action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the WebAuthn operation. |
Source code in wavexis/actions/webauthn.py
Animation¶
AnimationAction ¶
Bases: BaseAction[AnimationParams, Any]
Action for animation operations.
Source code in wavexis/actions/animation.py
execute
async
¶
Execute the animation action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the animation operation. |
Source code in wavexis/actions/animation.py
Service Worker¶
ServiceWorkerAction ¶
Bases: BaseAction[ServiceWorkerParams, Any]
Action for service worker operations.
Source code in wavexis/actions/service_worker.py
execute
async
¶
Execute the service worker action on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Result of the service worker operation. |
Source code in wavexis/actions/service_worker.py
Multi-Action¶
MultiAction ¶
Bases: BaseAction[Path, list[Any]]
Action that parses a YAML config and executes multiple actions.
Reuses a single backend instance for all actions. Supports both sequential (default) and parallel execution modes.
Source code in wavexis/actions/multi.py
__init__ ¶
Initialize the multi-action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
Path
|
Path to the YAML config file. |
required |
parallel
|
bool
|
If True, execute actions concurrently. |
False
|
Source code in wavexis/actions/multi.py
execute
async
¶
Parse the YAML config and execute all actions on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
An already-launched AbstractBackend instance. |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
List of results from each action. |
Source code in wavexis/actions/multi.py
Accessibility Audit¶
AxeAuditAction ¶
Bases: BaseAction[AxeAuditParams, dict[str, Any]]
Action for running axe-core accessibility audit.
Navigates to the URL, injects axe-core, and runs the audit. Returns violations, passes, incomplete, and inapplicable results.
Source code in wavexis/actions/axe_audit.py
execute
async
¶
Execute the axe-core audit action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with violations, passes, incomplete, and inapplicable lists. |
Source code in wavexis/actions/axe_audit.py
Crawl¶
CrawlAction ¶
Bases: BaseAction[CrawlParams, list[dict[str, Any]]]
Action for crawling a website and collecting page data.
Source code in wavexis/actions/crawl.py
execute
async
¶
Execute the crawl on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of page dicts with url, title, links, and depth. |
Source code in wavexis/actions/crawl.py
Visual Diff¶
VisualDiffAction ¶
Bases: BaseAction[VisualDiffParams, dict[str, Any]]
Action for comparing a live screenshot against a baseline.
Captures a screenshot of the current page (or element), loads the baseline, and computes pixel-level differences.
Source code in wavexis/actions/visual_diff.py
execute
async
¶
Execute the visual diff action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with diff_count, diff_percentage, total_pixels, and diff_base64. |
Source code in wavexis/actions/visual_diff.py
Combined Trace¶
CombinedTraceAction ¶
Bases: BaseAction[CombinedTraceParams, dict[str, Any]]
Action for starting or stopping a combined trace.
Start: navigates to URL, starts combined trace, waits duration_ms, stops, and returns all collected data in one call. Stop: stops a previously started trace by ID.
Source code in wavexis/actions/combined_trace.py
execute
async
¶
Execute the combined trace action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with trace data (trace_events, screenshots, network, console). |
Source code in wavexis/actions/combined_trace.py
Accessibility Audit¶
AxeAuditAction ¶
Bases: BaseAction[AxeAuditParams, dict[str, Any]]
Action for running axe-core accessibility audit.
Navigates to the URL, injects axe-core, and runs the audit. Returns violations, passes, incomplete, and inapplicable results.
Source code in wavexis/actions/axe_audit.py
execute
async
¶
Execute the axe-core audit action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with violations, passes, incomplete, and inapplicable lists. |
Source code in wavexis/actions/axe_audit.py
Browser¶
BrowserAction ¶
Bases: BaseAction[str, Any]
Action for browser management operations.
Supports contexts (new/list/close), window bounds (get/set), and version. The params string specifies the action: "new_context", "list_contexts", "close_context", "get_window", "set_window", or "version".
Source code in wavexis/actions/browser.py
execute
async
¶
Execute the browser action.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Action-dependent result (str, list, dict, or None). |
Source code in wavexis/actions/browser.py
Session¶
SessionSaveAction ¶
Bases: BaseAction[Path, str]
Action for saving browser session state to a file.
Source code in wavexis/actions/session.py
execute
async
¶
Save cookies and storage from the current backend session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend with an active session. |
required |
Returns:
| Type | Description |
|---|---|
str
|
JSON string of the session data. |
Source code in wavexis/actions/session.py
SessionLoadAction ¶
Bases: BaseAction[Path, None]
Action for loading browser session state from a file.
Source code in wavexis/actions/session.py
execute
async
¶
Load cookies and storage into the backend session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend with an active session. |
required |
Source code in wavexis/actions/session.py
Extract¶
ExtractAction ¶
Bases: BaseAction[ExtractParams, list[dict[str, Any]]]
Action for extracting structured data from a page using a CSS selector schema.
Source code in wavexis/actions/extract.py
execute
async
¶
Execute the extraction on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
list[dict[str, Any]]
|
List of dicts with field names mapped to extracted text/HTML. |
Source code in wavexis/actions/extract.py
Form¶
FormAction ¶
Bases: BaseAction[FormParams, dict[str, Any]]
Action for filling form fields and optionally submitting.
Source code in wavexis/actions/form.py
execute
async
¶
Execute the form fill on the backend.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
backend
|
AbstractBackend
|
The browser backend to use. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict with filled count and submit status. |