Ini disebabkan oleh 3 jenis berikut:
1. Elemen tidak terlihat untuk diklik.
Gunakan Tindakan atau JavascriptExecutor untuk membuatnya mengklik.
Berdasarkan Tindakan:
WebElement element = driver.findElement(By("element_path"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
Oleh 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.
atau
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView()", Webelement);
Kemudian klik pada elemen.
2. Halaman disegarkan sebelum mengklik elemen.
Untuk ini, buat halaman menunggu selama beberapa detik.
3. Elemen dapat diklik tetapi ada spinner / overlay di atasnya
Kode di bawah ini akan menunggu hingga hamparan menghilang
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Kemudian klik pada elemen.