mobile-dev-inc / maestro

Painless Mobile UI Automation
https://maestro.mobile.dev/
Apache License 2.0
5.63k stars 254 forks source link

Add `visibilityPercentage` param for `assertVisible` command #1780

Open meatnordrink opened 2 months ago

meatnordrink commented 2 months ago

Is your feature request related to a problem? Please describe. In web testing frameworks, you can frequently specify the % visibility required for an assert-visible statement to succeed. This is useful in cases such as carousels or scrolling, where the edge of an element may be visible (and thus the selector available to Maestro), but the majority of the element still invisible to the user.

Describe the solution you'd like A percentVisible param that can be passed to assertVisible.

- assertVisible: 
    - percentVisible: 50
    - text: Foo text

Describe alternatives you've considered Workarounds typically require adding dynamic test id's. They generally work, but not in all situations, and it's always less than ideal to have to add test id's rather than work with user-facing text.

Additional context Brought up in Slack - https://mobile-dev-inc.slack.com/archives/C05EV48H5FB/p1720029677051159

Fishbowler commented 2 months ago

Implementation note: this already exists for scrollUntilVisible so might have plenty of code re-use available.

bartekpacia commented 1 month ago

Sounds like a good idea. We might get to it in the future. Contributions are very welcome!