ExpectedConditions.invisibilityOfElementLocated不起作用

时间:2017-03-16 14:18:26

标签: selenium automation

我有这段代码

wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id(".....")));
webDriver.findElement(By.xpath(".......")).click();

有时我会例外:

org.openqa.selenium.WebDriverException: unknown error: Element <a href="#" onclick="showRelatedPerson();return false;" class="button-alt button-icon">...</a> is not clickable at point (1233, 710). Other element would receive the click: <div id="jquery-msg-bg" style="width: 100%; height: 100%; top: 0px; left: 0px;"></div>

这是我试图避免等待我放的元素。我等待它变得不可见,但有时即使它变得不可见,它仍然可以接收到点击,它阻止了要点击的正确元素。

1 个答案:

答案 0 :(得分:2)

问题在于,一旦测试到达第一行,我等待不可见的元素仍然不可见,但是当测试完成时,这个线元素变得可见。因此,解决方案是在开头添加一行:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("jquery-msg-bg")));
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("jquery-msg-bg")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("declarationBusinessParticularsActivity.isMain")));