Esto es causado por los siguientes 3 tipos:
1. El elemento no es visible para hacer clic.
Use Actions o JavascriptExecutor para hacer clic.
Por acciones:
WebElement element = driver.findElement(By("element_path"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
Por 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.
o
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView()", Webelement);
Luego haga clic en el elemento.
2. La página se actualiza antes de hacer clic en el elemento.
Para esto, haga que la página espere unos segundos.
3. Se puede hacer clic en el elemento, pero hay una rueda giratoria / superposición encima
El siguiente código esperará hasta que desaparezca la superposición
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Luego haga clic en el elemento.