grafana/k6

Add `ElementHandle.isInViewport()`

Open

#4,423 opened on Aug 12, 2022

View on GitHub
 (3 comments) (0 reactions) (1 assignee)Go (30,564 stars) (1,537 forks)batch import
area: browserfeaturegood first issuehacktoberfesttriage

Description

From this discussion in grafana/xk6-browser#467, we wanted to change TestWaitForFrameNavigationWithinDocument to also check whether an element is visible within the viewport after a navigation in the same document happens.

To do that it would be helpful if there was an ElementHandle.isInViewport() method, similar to the one described here. Playwright doesn't have such a method, but Puppeteer has ElementHandle.isIntersectingViewport(). isInViewport seems like a slightly better name, so let's go with that.

Suggested solution

We already have ElementHandle.boundingBox() in Go, though if we want to reduce the amount of JS evaluations and CDP calls, we could just wrap ElementHandle.eval() and do a single CDP call for this.

See grafana/k6#4424 for the test change to use this method.

Contributor guide