📅  最后修改于: 2023-12-03 15:21:47.607000             🧑  作者: Mango
FluentWait是Selenium WebDriver提供的一个等待方法,它可以在特定时间范围内轮询查找某个特定元素是否出现或是否可用。这种等待方式对于出现加载顺序不确定、难以捕捉到元素的情况非常有效。
FluentWait可以在应用程序中设置固定的等待时间间隔,在这段时间间隔内,程序会等待元素出现或可用。当元素以任何方式出现(例如,CSS、JavaScript、前端框架等)或可用时,程序将回归并继续执行。
FluentWait有以下特点:
在Java中,FluentWait的实现方式是通过 WebDriverWait 类来实现的。
下面是使用FluentWait的示例代码:
// 定义等待条件
Function<WebDriver, WebElement> condition = new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.xpath("//input[contains(@class,'search-text')]"));
}
};
// 设置等待时间
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);
// 等待元素出现
WebElement element = wait.until(condition);
// 在元素上执行操作
element.sendKeys("search term");
上面的代码定义了一个等待条件,即要查找的元素。接着,使用FluentWait来进行等待,设置等待时间为30秒,每隔5秒轮询一次查找元素,忽略NoSuchElementException异常。等待结束后,找到了元素并将其赋值给element变量,接着在该元素上执行操作。
FluentWait的等待方式更加智能,在特定时间范围内轮询查找特定元素是否出现或是否可用。使用FluentWait还可以避免在实施Selenium测试时的一些常见陷阱。因此,建议程序员在Web应用程序测试中采用FluentWait等待方式。