我有以下代码:
// setting timeout to a FULL MINUTE
WebDriverWait wait = new WebDriverWait(driver, 60);
Actions action = new Actions(driver);
// First, click the usermenu
WebElement userMenu = wait.until(ExpectedConditions.elementToBeClickable(By.id("UserMenu")));
userMenu.click();
WebElement adminPortal = driver.findElement(By.id("AdminPortals"));
action.moveToElement(adminPortal);
action.perform();
// Wait for secondary menu to become available
WebElement portal = wait.until(ExpectedConditions.elementToBeClickable(By.id(portalId)));
portal.click();
基本上,“UserMenu”是一个下拉菜单,并且有一个悬停扩展菜单“AdminPortals”。上面的代码模拟了(在 Selenium 中,单击展开菜单中的某个项目的动作。
我的问题与超时时间有关。什么时候开始倒计时?我假设是当我使用 wait.until() 时。我假设一旦 ExpectedConditions 返回 True,它就会停止计数?而且,真正的问题是:如果我使用相同的“等待”两次,就像我在这里一样,60 秒是否会重置为每次使用之间的限制,还是会重新计算之前停止的位置?
那么,如果第一次等待用了 2 秒,第二次等待用了 3 秒,那么第三次调用 wait.until() 的超时时间是 55 秒,还是重置为 60?