Here I have the image of my code and the image of my error. Can anyone help me to resolve this issue?
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.
The reason for ElementNotInteractableException to occur can be numerous.
Temporary Overlay of other WebElement
over the WebElement
of our interest :
In this case, the direct solution would have been to induce ExplicitWait
i.e. WebDriverWait
in combination with ExpectedCondition
as invisibilityOfElementLocated
as 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 ExpectedCondition
as invisibilityOfElementLocated
we can use ExpectedCondition
as elementToBeClickable
as 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 WebElement
over the WebElement
of our interest :
If the overlay is a permanent one in this case we have to cast the WebDriver
instance as JavascriptExecutor
and perform the click operation as follows:
WebElement ele = driver.findElement(By.xpath("element_xpath"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", ele);