Integrations

Recorder

JS-injection recorder (no CDP, cross-browser): captures click / change events and emits a WR_* action JSON draft. Sensitive fields (type=password, names matching password / card / cvv / ssn / secret / token / api_key / otp / passcode, 13–19-digit values) are masked by default.

CI / integrations

  • GitHub Actions annotationsemit_failure_annotations / emit_from_junit_xml produce ::error file=…:: lines.

  • JIRA / TestRailjira_create_failure_issues / testrail_send_results for post-run sync.

  • Slack / generic webhooknotify_run_summary.

  • Selenium Grid 4 docker-composedocker/docker-compose.yml ships hub + Chrome + Firefox nodes.

  • IDE configsdocs/ide/vscode-settings.example.json and docs/ide/jetbrains-jsonschemamapping.example.xml wire the action JSON schema into VS Code / JetBrains.

AI assistance

WebRunner ships no built-in LLM client. set_llm_callable(fn) registers any Callable[[str], str] and powers:

  • suggest_locator(html, description) — last-resort locator suggestion.

  • llm_self_heal_locator(name, html_provider) — pluggable hook for the self-healing locator flow.

  • generate_actions_from_prompt(request) — natural language → action JSON draft.

  • explain_failure(test_name, error_repr, console=, network=, steps=) — produces a JSON RCA: {likely_cause, evidence, next_steps, confidence}.

MCP server

WebRunner ships a Model Context Protocol server so MCP-aware clients can drive it over JSON-RPC stdio:

python -m je_web_runner.mcp_server

Default tools registered (19 in total):

  • Action authoring & lint: webrunner_lint_action, webrunner_score_action_locators, webrunner_locator_strength, webrunner_format_actions, webrunner_parse_markdown, webrunner_render_template, webrunner_translate_actions_to_playwright, webrunner_translate_python_to_playwright

  • Code generation: webrunner_pom_from_html

  • Quality & triage: webrunner_a11y_diff, webrunner_cluster_failures, webrunner_compute_trend

  • Security: webrunner_scan_pii, webrunner_redact_pii

  • Reporting & contract: webrunner_summary_markdown, webrunner_validate_response

  • Sharding / infra: webrunner_diff_shard, webrunner_render_k8s, webrunner_partition_shard

Custom tools register via McpServer.register(Tool(...)); the server implements MCP 2024-11-05 (initialize / tools/list / tools/call / resources/list / ping / shutdown).

Action JSON LSP

python -m je_web_runner.action_lsp

Standard LSP 3.17-shaped server over stdio. textDocument/completion suggests every registered WR_* command; textDocument/didOpen / didChange push publishDiagnostics based on linter.action_linter.lint_action().