今天在写测试脚本时,元素 click 失败,chrome 上提示 Element is not clickable at point (1096, 26)。前提 webElement.isDisplayed() 是 True 的。后台发现原来该元素在视图之外,可以调用 JS 方法解决:
WebElement webElement = driver.findElement(By.className("hytext"));
System.out.println(webElement.isDisplayed());
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", webElement);
webElement.click();
还有另外一种情况也会导致此现象,就是 click 前出现弹出层,如加载层,需等待加载层完毕后执行 click 即可:
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(By.id("hytext")));