【发布时间】:2014-07-19 10:56:39
【问题描述】:
当我使用 Firefox 的网络驱动程序运行测试时,我会在收到警报后收到模态异常:
[Exception]: Modal dialog present
但是,当使用 IE webdriver 时,测试工作正常。问题似乎是在警报完全关闭之前测试场景继续进行。换句话说,它试图做以下事情:
List<WebElement> l = driver.findElements(By.linkText("link"));
结果我会得到模态异常。
现在wait.until(ExpectedConditions) 如提到的wait.until(ExpectedConditions.visibilityOf Element1 OR Element2) 是不错的候选人。但是,当警报消失时,我无法创建返回 true 的条件。我该怎么做?
编辑:进一步澄清,问题不在于等待警报出现(我的隐式等待为此目的工作正常)。我确实收到了警报并对其应用了测试,但是在我单击警报上的接受后,测试会快速进行并尝试在警报仍然存在的情况下继续下一步并引发模态出现异常。我还尝试了以下方法来防止这种情况,但没有成功。
driver.switchTo().defaultContent();
【问题讨论】:
-
我对 FF 也有同样的问题。尝试执行下一步时,模式对话框仍然存在。
-
我遇到了同样的问题,我使用了 WebDriverWait().until(ExpectedConditions.InvisibilityOf(Element)) 但这导致等待时间比我想要处理的要长。
标签: java selenium junit modal-dialog