Điều này được gây ra bởi 3 loại sau:
1. Phần tử không hiển thị để nhấp.
Sử dụng Tác vụ hoặc JavascriptExecutor để làm cho nó nhấp.
Bằng hành động:
WebElement element = driver.findElement(By("element_path"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
Bởi JavascriptExecutor:
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("scroll(250, 0)"); // if the element is on top.
jse.executeScript("scroll(0, 250)"); // if the element is on bottom.
hoặc là
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView()", Webelement);
Sau đó bấm vào yếu tố.
2. Trang đang được làm mới trước khi nhấp vào phần tử.
Đối với điều này, làm cho trang chờ trong vài giây.
3. Phần tử có thể nhấp nhưng có phần tử / lớp phủ bên trên phần tử
Đoạn mã dưới đây sẽ đợi cho đến khi lớp phủ biến mất
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Sau đó bấm vào yếu tố.