Skip to content

Conversation

@ajayrakde
Copy link
Owner

Motivation

  • Provide a Playwright-like, unified action pipeline for locator-driven actions so click/fill/hover/check/select are actionable, stable, and diagnosable.
  • Make native Selenium click the default and add a per-call opt-in JS fallback, while keeping extension points for future sync/kernel improvements.
  • Enforce strict ONE resolution for actions to prevent ambiguity and flake, and surface rich diagnostics and suggestions on failures.

Description

  • Introduce action framework primitives: ActionPolicy/DefaultActionPolicy, ActionPerformer/DefaultActionPerformer, ClickOptions, and PostActionWait to drive timeouts, retry, click-point, scroll, and post-action behavior.
  • Add probe/hit-test/stability/retry components: ElementStateProbe/JsElementStateProbe, HitTestService/JsHitTestService, StabilityService/StableRectService, and RetryPolicy/DefaultRetryPolicy to implement gates and transient-error handling.
  • Add diagnostics and failure types: ActionDiagnostics and ActionFailedException, plus a JsClickExecutor and MinimalSettleWaiter for JS fallback and minimal post-action settle.
  • Extend core APIs and wiring: AutomationContext and DefaultAutomationContext now expose actionPolicy() and actionPerformer(), Locator/DefaultLocator gain action methods (click, fill, clearAndFill, hover, pressKey, check, uncheck, selectOption) with strictness checks, and BUILD.bazel updated to include new packages; documentation java/docs/locator-engine-user-journey.md updated to mention action usage.

Testing

  • Ran bazel test //java/... which failed to run due to inability to download the Bazel binary (HTTP 403), so integration/compile/test targets were not executed.
  • Ran bazel test //java:checkstyle which similarly failed for the same Bazel download error (HTTP 403), so checkstyle could not be validated.
  • No other automated tests were executed in this environment; code was compiled locally insofar as Java sources were added and committed but CI/test execution could not be completed due to the Bazel download issue.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant