selenium – 流利等待和WebDriver等待 – 差异

我在使用Selenium的代码中看到了FluentWait和WebDriverWait. 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")));

转载注明原文:selenium – 流利等待和WebDriver等待 – 差异 - 代码日志