Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Solution
- The error Element is not clickable at point (x, y) can arise from different factors. You can address them by either of the following procedures:
- 1. Element not getting clicked due to JavaScript or AJAX calls present
- Try to use Actions Class:
- WebElement element = driver.findElement(By.id("navigationPageButton"));
- Actions actions = new Actions(driver);
- actions.moveToElement(element).click().build().perform();
- 2. Element not getting clicked as it is not within Viewport
- Try to use JavascriptExecutor to bring the element within the Viewport:
- WebElement myelement = driver.findElement(By.id("navigationPageButton"));
- JavascriptExecutor jse2 = (JavascriptExecutor)driver;
- jse2.executeScript("arguments[0].scrollIntoView()", myelement);
- 3. The page is getting refreshed before the element gets clickable.
- In this case induce ExplicitWait i.e WebDriverWait as mentioned in point 4.
- 4. Element is present in the DOM but not clickable.
- In this case induce ExplicitWait with ExpectedConditions set to elementToBeClickable for the element to be clickable:
- WebDriverWait wait2 = new WebDriverWait(driver, 10);
- wait2.until(ExpectedConditions.elementToBeClickable(By.id("navigationPageButton")));
- 5. Element is present but having temporary Overlay.
- In this case induce ExplicitWait with ExpectedConditions set to invisibilityOfElementLocated for the Overlay to be invisible.
- WebDriverWait wait3 = new WebDriverWait(driver, 10);
- wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
- 6. Element is present but having permanent Overlay.
- Use JavascriptExecutor to send the click directly on the element.
- WebElement ele = driver.findElement(By.xpath("element_xpath"));
- JavascriptExecutor executor = (JavascriptExecutor)driver;
- executor.executeScript("arguments[0].click();", ele);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement