8

我在使用 Selenium 的代码中FluentWait都见过。使用轮询技术,即它将在每个固定间隔轮询特定的. 我想知道做什么用? WebDriverWaitFluentWaitWebElementWebDriverWaitExpectedConditions

考虑以下 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 秒?

4

1 回答 1

11

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

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

WebElement element = wait.until(
        ExpectedConditions.elementToBeClickable(By.linkText("Account")));
于 2013-11-11T14:15:30.350 回答