Inconsistent visibility requirement between get/query and find queries
jrolfs opened this issue · 0 comments
jrolfs commented
This originally came up in #519 / #519 (comment)
Because we use Locator.waitFor() in the find* queries implementation, we have to specify a Playwright state for the element we are waiting on. I naively went with the Playwright default, which is visible. However, this causes inconsistency with the get* and query* queries because they don't verify the element state in Playwright at all.
Here are some options I see to resolve this:
- Switch the default
state/asyncUtilExpectedStateto'attached' - Assert the
stateconsistently (isVisible()), for elements returned from the other types of queries (we'd probably also want to rename the option to removeasyncfrom the name 😒) - Document this well and be okay that
find*queries already serve a different purpose on top of the other query types
1 and 2 will now be breaking changes since we already released stuff on 4.4.0. We should probably do 3 in some form in the meantime regardless of what we choose.
Related inconsistency/rough edge: #506