grafana/k6 · error
checking is visible
Error message
checking is %q visible: %w
What it means
Wrapped failure from Frame.isVisible while resolving visibility of the element matched by the locator's selector (strict mode forced via FrameIsVisibleOptions). Fires when the selector matches multiple elements (strict violation) or the visibility evaluation fails — a hidden element returns (false, nil), not this error.
Solutions
- Narrow the selector so it matches at most one element
- Note visibility is checked immediately with no auto-wait; wait for the element first if it may not exist yet
- Distinguish the returned error from a legitimate false (hidden) result
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at internal/js/modules/k6/browser/common/locator.go:283 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of grafana/k6@01ffac6f24 (2026-08-18).
Data as JSON: /api/errors/3dc2b9313d4c7744.
Report an issue: GitHub.
Appendix: source
Thrown at internal/js/modules/k6/browser/common/locator.go:283
l.log.Debugf("Locator:IsInViewport", "fid:%s furl:%q sel:%q opts:%+v", l.frame.ID(), l.frame.URL(), l.selector, opts)
opts.Strict = true
inViewport, err := l.frame.isInViewport(l.selector, opts)
if err != nil {
return false, fmt.Errorf("checking is %q in viewport: %w", l.selector, err)
}
return inViewport, nil
}
// IsVisible returns true if the element matches the locator's
// selector and is visible. Otherwise, returns false.
func (l *Locator) IsVisible() (bool, error) {
l.log.Debugf("Locator:IsVisible", "fid:%s furl:%q sel:%q", l.frame.ID(), l.frame.URL(), l.selector)
visible, err := l.frame.isVisible(l.selector, &FrameIsVisibleOptions{Strict: true})
if err != nil {
return false, fmt.Errorf("checking is %q visible: %w", l.selector, err)
}
return visible, nil
}
// IsHidden returns true if the element matches the locator's
// selector and is hidden. Otherwise, returns false.
func (l *Locator) IsHidden() (bool, error) {
l.log.Debugf("Locator:IsHidden", "fid:%s furl:%q sel:%q", l.frame.ID(), l.frame.URL(), l.selector)
hidden, err := l.frame.isHidden(l.selector, &FrameIsHiddenOptions{Strict: true})
if err != nil {
return false, fmt.Errorf("checking is %q hidden: %w", l.selector, err)
}
return hidden, nil
}
View on GitHub (pinned to 01ffac6f24)