我有一个有效的解决方案,但我希望有更好的方法。
在自动化网站时,有很多地方会显示一个微调器来告诉用户进程正在运行。根据需要在DOM中添加和删除div;而不是课程更改或设置显示:无。
当我第一次开始构建自动化框架时,我有一个简单的等待元素不再存在:numberOfElementsToBe等于0.但我一直有时间问题:旋转器出现在第一个位置,所以代码会假设一切都已完成,继续并失败,因为页面还没有准备好。
为了解决这个问题,我添加了一个try / catch来首先查看/等待微调器出现2秒钟。然后,无论代码是否看到微调器,它都会等待它消失。
try {
quickWait.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.className(identifier), 0));
} catch (Exception e) {
//Nope
}
wait.until(ExpectedConditions.numberOfElementsToBe(By.className(identifier), 0));
}
这样,我抓住了所有情况:
所有这些都很好,除了所有"快速"的情况。由于等待失败,它会在正在运行的控制台日志(不是浏览器控制台)中抛出WARNING。这使得诊断问题变得很痛苦,因为我必须通过一系列警告试图找到真正的问题。
所以,任何人都有任何建议/替代方法来处理"等待情况存在/等待它停止"哪些情况不会抛出大量无用的警告? 我正在寻找一个"做这个而不是#34;方法或一种方法来抑制单个方法的运行时警告消息。
注意:微调器的时间是可变的。有时它很快就会在屏幕上闪烁,有时甚至需要一秒甚至在屏幕上显示。测试不应该太脆,以至于错误的旋转器会导致测试失败。它仅用作结果可用的信号。