maestro icon indicating copy to clipboard operation
maestro copied to clipboard

Infinite loop when using `repeat while true` with `maestro.copiedText`

Open hormesiel opened this issue 4 months ago • 3 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues and didn't find mine.

Steps to reproduce

I'm trying to find a "bullet-proof" workaround to issues #495 and #1777 by using repeat and maestro.copiedText to clear edit texts on Android no matter their content's length, and to keep my code DRY. Unfortunately this doesn't work ; for some reason the while condition never evaluates to true which causes an infinite loop.

# _utils/edit-text-clear-text.yaml
appId: ""

---

- copyTextFrom: ${EDIT_TEXT_LABEL}
- repeat:
    while:
      true: ${maestro.copiedText} # <-- PROBLEM HERE
      true: ${maestro.copiedText != ''} # <-- This won't work either
      true: ${maestro.copiedText.length > 0} # <-- This won't work either
    commands:
      - tapOn: ${EDIT_TEXT_LABEL}
      - eraseText
      - copyTextFrom: ${EDIT_TEXT_LABEL}
# some-flow.yaml

# [...]

- tapOn: "E-mail"
- runFlow:
    file: _utils/edit-text-clear-text.yaml
    env:
      EDIT_TEXT_LABEL: "E-mail"
- inputText: ${SIGN_UP_EMAIL}

Actual results

Maestro never gets out of the repeat loop, even after the edit text has been entirely cleared.

Expected results

Maestro should get out of the repeat loop once the edit text's value is empty.

About app

Closed source app and I can't share any binary sorry.

About environment

  • Windows 11 (64-bit)

Logs

No response

Maestro version

1.38.1

How did you install Maestro?

install script (https://get.maestro.mobile.dev)

Anything else?

No response

hormesiel avatar Oct 23 '24 08:10 hormesiel