流利的等待和WebDriver等待 - 差异

时间:2013-11-11 14:04:53

标签: selenium selenium-webdriver

我在使用Selenium的代码中看到了FluentWaitWebDriverWaitFluentWait使用轮询技术,即它将针对特定WebElement每隔固定间隔轮询一次。我想知道WebDriverWaitExpectedConditions做了什么?

考虑遵循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秒?

1 个答案:

答案 0 :(得分:10)

在您的示例中wait.until(ExpectedConditions...)会在超时之前持续查看linkText'帐号'(每0.5秒)18秒。

WebDriverWaitFluentWait<WebDriver>的子类。  在FluentWait中,您有更多选项可供配置,以及最长等待时间,如轮询间隔,忽略异常等。此外,在您的代码中,您无需等待,然后在findElement中下一步,你可以这样做:

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