⚙️ 在Fluent Wait中,如何设置不同的等待条件?

在Selenium中使用Fluent Wait时,设置不同的等待条件主要通过以下几种方式实现:

1. 设置超时时间(withTimeout)

你可以使用withTimeout方法来设置等待的最大时间。例如,如果你想设置最大等待时间为30秒,可以这样设置:

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
    .withTimeout(Duration.ofSeconds(30)); // 设置超时时间为30秒

2. 设置轮询频率(pollingEvery)

使用pollingEvery方法来设置检查条件的频率。例如,每5秒检查一次条件是否满足:

//实例: https://www.riben5.com/
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
    .pollingEvery(Duration.ofSeconds(5)); // 设置轮询频率为每5秒

3. 忽略特定异常(ignoring)

在等待过程中,你可能想要忽略某些异常,比如NoSuchElementException。使用ignoring方法来设置:

//实例:https://www.gs92.cn/
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
    .ignoring(NoSuchElementException.class); // 忽略NoSuchElementException异常

4. 自定义等待条件(until)

Fluent Wait允许你通过until方法设置自定义的等待条件。你可以提供一个函数,当函数返回的值不为null且为真时,结束等待:

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
    .withTimeout(Duration.ofSeconds(30))
    .pollingEvery(Duration.ofSeconds(5))
    .ignoring(NoSuchElementException.class);

WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
    public WebElement apply(WebDriver driver) {
        return driver.findElement(By.id("foo"));
    }
});

在这个示例中,until方法接受一个Function<WebDriver, WebElement>,该函数会在每次轮询时被调用,直到找到元素foo或者超时。

通过这些方法,你可以灵活地设置Fluent Wait的不同等待条件,以适应各种复杂的测试场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值