【发布时间】:2017-12-08 07:04:03
【问题描述】:
我使用了显式等待,但我收到了警告:
org.openqa.selenium.WebDriverException: 元素在点 (36, 72) 处不可点击。其他元素将收到 点击:... 命令持续时间或超时:393 毫秒
如果我使用Thread.sleep(2000),我不会收到任何警告。
@Test(dataProvider = "menuData")
public void Main(String btnMenu, String TitleResultPage, String Text) throws InterruptedException {
WebDriverWait wait = new WebDriverWait(driver, 10);
driver.findElement(By.id("navigationPageButton")).click();
try {
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(btnMenu)));
} catch (Exception e) {
System.out.println("Oh");
}
driver.findElement(By.cssSelector(btnMenu)).click();
Assert.assertEquals(driver.findElement(By.cssSelector(TitleResultPage)).getText(), Text);
}
【问题讨论】:
-
您使用的是 Chrome 61+ 版本吗?
-
@demouser123 我正在使用 Firefox 47.0.1 和 seleniumWebDriver 2.51.0
-
@Maria 您在哪一行收到错误消息?谢谢
-
@DebanjanB 行内:driver.findElement(By.id("navigationPageButton")).click();
-
该错误意味着,有另一个元素覆盖目标元素(固定/绝对定位覆盖)或 z-index 太低。这可能是由使用过渡的悬停效果引起的(低于最小超时,在本例中为 393 毫秒)。您应该等待
#navigationPageButton变为可见(或使用elementToBeClickable()对该元素也可点击)或检查是否满足所有先决条件以便按钮可点击。
标签: java selenium selenium-webdriver webdriver