Ciò è causato dai seguenti 3 tipi:
1.L'elemento non è visibile per fare clic.
Utilizzare Actions o JavascriptExecutor per fare clic.
Per azioni:
WebElement element = driver.findElement(By("element_path"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
Di 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);
Quindi fare clic sull'elemento.
2.La pagina viene aggiornata prima di fare clic sull'elemento.
Per questo, fai aspettare la pagina per alcuni secondi.
3. L'elemento è cliccabile ma sopra c'è uno spinner / overlay
Il codice seguente attenderà fino alla scomparsa della sovrapposizione
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Quindi fare clic sull'elemento.