Skip to content

Implement tap options (repeat, delay, retryTapIfNoChange, waitToSettleTimeoutMs)#53

Open
omnarayan wants to merge 1 commit intomainfrom
fix/tap-options
Open

Implement tap options (repeat, delay, retryTapIfNoChange, waitToSettleTimeoutMs)#53
omnarayan wants to merge 1 commit intomainfrom
fix/tap-options

Conversation

@omnarayan
Copy link
Copy Markdown
Contributor

Summary

  • Implement repeat, delay, retryTapIfNoChange, and waitToSettleTimeoutMs tap options that were parsed from YAML but ignored during execution
  • Logic lives in the executor layer wrapping driver.Execute() — all 5 drivers (uiautomator2, wda, devicelab, appium, cdp) benefit with zero driver changes
  • waitForSettle polls Hierarchy() until two consecutive snapshots match, matching Maestro's behavior

Test plan

  • 16 unit tests covering: extract options, repeat, delay timing, retry on no change, retry on change, settle, context cancellation, tap failure
  • All existing executor tests pass
  • E2E: flow with repeat: 3, delay: 1000 should show visible delay between taps

Fixes #52

…eTimeoutMs)

Add executor-level tap option handling that wraps driver.Execute()
for TapOnStep, DoubleTapOnStep, and LongPressOnStep. All 5 drivers
benefit automatically with no driver-side changes.

- repeat/delay: loop taps with configurable delay between them
- retryTapIfNoChange: compare UI hierarchy before/after, retry if unchanged
- waitToSettleTimeoutMs: poll hierarchy until stable before/after tap

Matches Maestro's execution semantics. Fixes #52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Tap options not working

1 participant