ElementNotInteractableException
ElementNotInteractableException is the W3C exception which is thrown to indicate that although an element is present on the HTML DOM, it is not in a state that can be interacted with.
Reasons & Solutions :
The reason for ElementNotInteractableException to occur can be numerous.
-
Temporary Overlay of other
WebElementover theWebElementof our interest :In this case, the direct solution would have been to induce
ExplicitWaiti.e.WebDriverWaitin combination withExpectedConditionasinvisibilityOfElementLocatedas folllows:WebDriverWait wait2 = new WebDriverWait(driver, 10); wait2.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_element_to_be_invisible"))); driver.findElement(By.xpath("xpath_element_to_be_clicked")).click();A better solution will be to get a bit more granular and instead of using
ExpectedConditionasinvisibilityOfElementLocatedwe can useExpectedConditionaselementToBeClickableas follows:WebDriverWait wait1 = new WebDriverWait(driver, 10); WebElement element1 = wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element_to_be_clicked"))); element1.click(); -
Permanent Overlay of other
WebElementover theWebElementof our interest :If the overlay is a permanent one in this case we have to cast the
WebDriverinstance asJavascriptExecutorand perform the click operation as follows:WebElement ele = driver.findElement(By.xpath("element_xpath")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", ele);