Skip to content

[BUG] Tap options not working #52

@chrisjin-swipe

Description

@chrisjin-swipe

Description

On submission of a form, there is a slight delay to render a PDF with content on it before a user can continue onto the next form. I have tried using tap options to delay the tap or wait for the UI to settle but they are not being respected from observing the timings between taps

Steps to Reproduce

      - tapOn: 
          text: "submit"
          waitToSettleTimeoutMs: 15000
      - extendedWaitUntil:
          visible:
            text: "continue"
            enabled: true
          timeout: 15000
      - tapOn:
          repeat: 3
          text: "continue"
          retryTapIfNoChange: true
          delay: 3000

Expected Behavior

This is an example of what I've tried to test/replicate the behaviour of the tap timings. On submit, I added a waitToSettle and expected to observe a large delay between the submit and subsequent tap on continue.

I added a repeat option and expected it to tap multiple times with delays in between each tap, and retry tapping if nothing changed on the UI.

Actual Behavior

Observed tap sequence:
✓ tapOn (1.2s)
✓ extendedWaitUntil (2.4s)
✓ tapOn (105ms)

I note that this logic sequence lives within a repeat loop for several forms, so I'm not sure if that has an effect on the ability to add tap options.

Environment

  • OS: macOS 26.4
  • maestro-runner version: 1.1
  • Executor: Maestro runner, UIAutomator
  • Device/Simulator: Android Medium Phone 36.1

Flow File

- repeat:
    times: 2
    commands:
      - repeat:
          while:
            visible:
              id: "pressable"
              enabled: false
              timeout: 1000
          commands:
            - swipe:
                start: 50%, 70%
                end: 50%, 20%   
                duration: 50
      - tapOn:
          id: "button-text"
          index: 1
      - tapOn:
          id: "Yes.*"
      - tapOn: 
          text: "submit"
          waitToSettleTimeoutMs: 3000
      - extendedWaitUntil:
          visible:
            text: "continue"
            enabled: true
          timeout: 15000
      - tapOn:
          text: "continue"
          retryTapIfNoChange: true
          delay: 3000
      - assertVisible: 
          id: checkbox-item
          enabled: true
      - tapOn:
          id: checkbox-item
      - assertVisible:
          id: "button-text"
          enabled: true
      - tapOn:
          id: "button-text"
      - assertVisible: 
          text: "your employment paperwork"
          timeout: 30000
      - extendedWaitUntil:
          notVisible:
            text: "checking your progress"
      - extendedWaitUntil:
          notVisible:
            text: "getting your forms"
          timeout: 60000
      - extendedWaitUntil:
          notVisible:
            text: "loading"
          timeout: 60000
      - extendedWaitUntil:
          visible:
            id: "next-action"
            enabled: true
      - doubleTapOn:
          id: "next-action"
          optional: true

Error Output

N/A

Additional Context

I have found a work-around with extended waits for the loading screens, but sometimes this takes exceptionally long up to 20seconds even when the visible text has already long disappeared. Given that we have up to 8 forms we need a faster way than relying on extended waits which add extra time up to 20s per form

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions