我有一个Web应用程序,可以在闲置一段时间后自动注销。我尝试使用以下代码。
WebDriverWait wait = new WebDriverWait(getWebDriver(), 300);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("logout.button")));
这只是在5分钟后给出TimeOutException
。任何想法如何实现?
提前谢谢。
答案 0 :(得分:0)
它会在5分钟内超时,因为你已经给了300秒。而不是搜索注销按钮为什么不搜索登录按钮。
WebDriverWait wait = new WebDriverWait(getWebDriver(), 300);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("login.button")));
答案 1 :(得分:0)
以简单的方式您可以在空闲的时间内使用睡眠(In 规范文件,他们将提到自动'退出'时间)
然后检查“登录”或将出现的某个elemnet 在'退出'之后
注意:您使用了300秒的显式等待,这就是“5分钟后出现TimeOutException”
答案 2 :(得分:0)
只需放一个计时器,然后把它放在循环中等待,直到没有异常或计时器用完(在这种情况下测试失败)。
您还应该检查基础架构或测试框架上的所有默认隐式等待时间,可能会有一些超时都会在达到某个阈值之前等待。
否则,我假设您正在测试一个具有javascript计时器的Web应用程序,如果没有活动,该计时器会在5分钟时超时。你能不能更好地改变这次测试的等待时间,以便超时发生?挂一个线程5分钟进行一次测试似乎相当长。