isVisible should use predicate in selectors

Using the same approach for utility method that we use with selectors