我试图等到使用presenceOfElementLocated从页面加载中清除叠加层。但是它从未检测到叠加层已消失(从DOM中删除)。我只能说这与DOM陈旧有关吗? numberOfElementsToBe确实有效。这看起来很奇怪,但如果它新鲜地查询DOM,那就完全有道理了。
wait = new WebDriverWait(driver, 30);
wait
.withMessage("Loading Overlay never disappeared")
//this didn't work
.until(ExpectedConditions.not(ExpectedConditions.presenceOfElementLocated(By.className("overlay"))));
//this worked
.until(ExpectedConditions.numberOfElementsToBe(By.className("overlay"),0));
这是一种测试陈旧DOM的好方法,可以防止你正确等待dom删除吗?或者我是否需要更改我的presenceOfElementLocated支票?
答案 0 :(得分:1)
如果您想等待叠加层消失,可以按以下方式实施invisibilityOfElementLocated
条件:
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("overlay")));