Isso é causado pelos seguintes 3 tipos:
1.O elemento não está visível para clicar.
Use Actions ou JavascriptExecutor para fazer clique.
Por ações:
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.
ou
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].scrollIntoView()", Webelement);
Depois clique no elemento.
2.A página está sendo atualizada antes de clicar no elemento.
Para isso, faça a página aguardar alguns segundos.
3. O elemento é clicável, mas há um botão giratório / sobreposição em cima dele
O código abaixo irá esperar até que a sobreposição desapareça
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Depois clique no elemento.