Home >Java >javaTutorial >How to Click Elements Hidden by Overlays in Selenium?
Clicking Elements Hidden by Overlays in Selenium
In Selenium-based automation, clicking on elements that are obscured by overlays can be a common challenge. The error message "Element MyElement is not clickable at point (x, y)... Other element would receive the click" indicates this situation.
Addressing the Issue
To resolve this issue, consider the following approaches:
WebElement element = driver.findElement(By.id("id1")); Actions actions = new Actions(driver); actions.moveToElement(element).click().build().perform();
JavascriptExecutor jse1 = (JavascriptExecutor)driver; jse1.executeScript("scroll(250, 0)"); // if the element is on top. jse1.executeScript("scroll(0, 250)"); // if the element is at bottom.
Page Refresh:
If the page refreshes before the element becomes clickable, induce a wait:
Thread.sleep(500); // replace 500 with an appropriate timeout in milliseconds
WebDriverWait wait2 = new WebDriverWait(driver, 10); wait2.until(ExpectedConditions.elementToBeClickable(By.id("id1")));
WebDriverWait wait3 = new WebDriverWait(driver, 10); wait3.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("ele_to_inv")));
WebElement ele = driver.findElement(By.xpath("element_xpath")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", ele);
The above is the detailed content of How to Click Elements Hidden by Overlays in Selenium?. For more information, please follow other related articles on the PHP Chinese website!