1 回答
TA贡献1719条经验 获得超6个赞
您的问题中提到了四个不同的主题,您可以在下面找到详细信息:
java.util.function
java.util.function包包括为lambda 表达式和方法引用提供目标类型的功能接口。
几个例子是:
BiConsumer<T,U>
: 表示接受两个输入参数并且不返回结果的操作。BiFunction<T,U,R>
: 表示一个接受两个参数并产生结果的函数。BinaryOperator<T>
: 表示对两个相同类型的操作数的操作,产生与操作数相同类型的结果。BiPredicate<T,U>
:表示两个参数的谓词(布尔值函数)。Consumer<T>
:表示接受单个输入参数且不返回结果的操作。Function<T,R>
: 表示接受一个参数并产生结果的函数。
类 FluentWait
该类public class FluentWait<T>
扩展java.lang.Object
并实现Wait<T>
,这意味着它是Wait接口的实现,可以动态配置其超时和轮询间隔。每个 FluentWait 实例定义等待条件的最长时间,以及检查条件的频率。此外,用户可以将等待配置为在等待时忽略特定类型的异常,例如在页面上搜索元素时的NoSuchElementExceptions 。
修饰符之一是:
Modifier and Type Method and Description
----------------- ----------------------
<V> V until(java.util.function.Function<? super T,V> isTrue)
Specified by:
until in interface Wait<T>
Type Parameters:
V - The function's expected return type.
Parameters:
isTrue - the parameter to pass to the ExpectedCondition
Returns:
The function's return value if the function returned something different from null or false before the timeout expired.
Throws:
TimeoutException - If the timeout expires.
此实现重复将此实例的输入值应用于给定函数,直到发生以下情况之一:
该函数既不返回 null 也不返回 false
该函数抛出一个未被忽略的异常
超时到期
当前线程被中断
接口预期条件
该public interface ExpectedCondition<T>
接口扩展com.google.common.base.Function<WebDriver,T>
了对预期评估为既不为空也不为假的条件建模。示例包括确定网页是否已加载或元素是否可见。
请注意,它是
ExpectedConditions
幂等的。它们将由 循环调用,WebDriverWait
并且对被测应用程序状态的任何修改都可能产生意想不到的副作用。
类预期条件
ExpectedConditions类是罐装的ExpectedCondition s,通常在 webdriver 测试中很有用。
几个使用示例:
elementToBeClickable()
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("element_css")));
visibilityOfElementLocated()
:new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("element_css")));
frameToBeAvailableAndSwitchToIt()
:new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("element_css")));
visibilityOfAllElementsLocatedBy()
:new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("element_css")));
attributeContains()
:new WebDriverWait(driver, 20).until(ExpectedConditions.attributeContains(driver.findElement(my_element), "src", "https"));
添加回答
举报