Dies wird durch die folgenden 3 Arten verursacht:
1. das Element ist nicht sichtbar, um es anzuklicken.
使用する Aktionen o JavascriptExecutor dafür, dass Sie es zum Klicken gebracht haben.
Durch Aktionen:
WebElement element = driver.findElement(By("element_path"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().perform();
Durch 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);
Klicken Sie dann auf das Element.
2. die Seite wird aktualisiert, bevor das Element angeklickt wird.
Lassen Sie dazu die Seite einige Sekunden warten.
3. Das Element ist anklickbar, aber es befindet sich ein Spinner/Overlay darüber
Der folgende Code wartet, bis das Overlay verschwindet
By loadingImage = By.id("loading image ID");
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
Klicken Sie dann auf das Element.