diff --git a/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java b/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java
index <HASH>..<HASH> 100644
--- a/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java
+++ b/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java
@@ -203,7 +203,8 @@ public class ExpectedConditions {
       public WebElement apply(WebDriver driver) {
         try {
           return elementIfVisible(driver.findElement(locator));
-        } catch (StaleElementReferenceException e) {
+        } catch (StaleElementReferenceException | NoSuchElementException e) {
+          // Returns null because the element is no longer or not present in DOM.
           return null;
         }
       }
Also catch the NoSuchElementException if the element is not present in DOM thrown by findElement(locator) and return null in method visibilityOfElementLocated (#<I>)