如何在 java 中使用 selenium 测试自动注销?

How to test Auto logout using selenium in java?

我有一个 Web 应用程序,它会在闲置一段时间后自动注销。我尝试使用以下代码。

WebDriverWait wait = new WebDriverWait(getWebDriver(), 300);
        wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("logout.button")));

5 分钟后 TimeOutException。知道如何实施吗? 提前致谢。

5分钟后超时,因为你给了300秒。为什么不搜索登录按钮而不是搜索注销按钮。

WebDriverWait wait = new WebDriverWait(getWebDriver(), 300);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("login.button")));
  1. 以简单的方式你可以利用睡眠空闲时间(在 规范文件他们会提到自动 'logout' 时间)

  2. 然后检查 'login' 或某些将出现的 elemnet 在 'logout'

    之后

    注意:您使用了 300 秒的显式等待,这就是它给出的 "TimeOutException after 5 minutes"

只需放置一个计时器,然后将其置于循环中等待,直到没有异常或计时器用完(在这种情况下测试失败)。

您还应该检查您的基础架构或测试框架上的所有默认隐式等待时间,在达到特定阈值之前可能会超时所有等待。

否则,我假设您正在测试具有 javascript 计时器的网络应用程序,如果没有 activity,则超时时间为 5 分钟。你能不能更好地改变这个测试的等待时间,以便超时发生得更早?单次测试挂线程5min好像比较长