selenium webdriver 学习总结-Selenium 控制测试流_补充显示等待(五)

晒酷学院qq群:979438600
补充显示等待,深入使用FluentWait 与 Predicate、Funciton

package demo;
import java.util.concurrent.TimeUnit;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.FluentWait;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
public class TestWait {
    private WebDriver driver;
    @Test
    public void testPredicate(){
        FluentWait wait = new FluentWait(this.driver);
        wait.pollingEvery(50,TimeUnit.MILLISECONDS).withTimeout(10,TimeUnit.SECONDS);
        wait.until(new Predicate(){
            @Override
            public boolean apply(WebDriver driver) {
                try{
                    return driver.findElement(By.id("hello")).isDisplayed();
                }catch(NoSuchElementException e){
                    return false;
                }
            }
        });
    }
    @Test
    public void testFunction(){
        FluentWait wait = new FluentWait(this.driver);
        wait.withTimeout(10,TimeUnit.SECONDS).pollingEvery(10,TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class);
        wait.until(new Function(){
        @Override
        public WebElement apply(WebDriver driver) {
        WebElement element = driver.findElement(By.id("hello"));
        return element;
        }
        });
    }
}
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页