Fluent Wait and WebDriver Wait - Differences



我已经看到FluentWaitWebDriverWait使用Selenium的代码。 FluentWait使用轮询技术,即它将每隔固定间隔轮询一次特定WebElement。我想知道WebDriverWait如何处理ExpectedConditions

请考虑以下 Java 示例:

WebDriverWait wait = new WebDriverWait(driver, 18);
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Account")));
WebElement element = driver.findElement(By.linkText("Account"));
element.sendKeys(Keys.CONTROL);
element.click();

ExpectedConditions.elementToBeClickable(By.linkText("Account"))监视linkText("Account")是否可单击,还是在单击前等待 18 秒?

在您的

示例中,wait.until(ExpectedConditions...)将在超时之前(每 0.5 秒)linkText"帐户"继续查找 18 秒。

WebDriverWaitFluentWait<WebDriver>的一个子类。 FluentWait您可以配置更多选项,以及最长等待时间,例如轮询间隔、要忽略的异常等。此外,在您的代码中,您无需等待然后在下一步中findElement,您可以执行以下操作:

WebElement element = wait.until(
        ExpectedConditions.elementToBeClickable(By.linkText("Account")));

最新更新