'isInvisible()' now returns true on 'NoSuchElementException' instead of causing 'TimeoutException' #8063
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
isInvisible()
method, when encountered withNoSuchElementException
causesTimeoutException
,whereas, it should return
true
.Because if the element is not present in DOM, it should be treated as invisible
Fixes #7518
Description
The
isInvisible()
method now catchesNoSuchElementException
along withStaleElementReferenceException
and returnstrue
for these exceptions.Motivation and Context
Any element not present in the DOM should be treated as invisible.
In case of element located by
@FindBy
locator, the element holdsProxyElement
and the actual element is looked up only when the element is referenced, and the element is referenced inisInvisible
method by checking!element.isDisplayed()
condition, which causes timeout exceptionwhen using the element in following manner
new WebDriverWait(driver,Duration.ofSeconds(5)).until(ExpectedConditions.invisibilityOf(element));
even though element is not present.
Types of changes
Checklist