WebDriverWait自定义等待事件

1. webDriverWait自定义WebElement类事件

    public WebElement waitForElementVisible(WebDriver driver,final By locator, long timeOutInSeconds, String errorMessage) {
        Function<WebDriver, WebElement> waitFn = new Function<WebDriver, WebElement>() {
            @Override
            public WebElement apply(WebDriver driver) {
                try {
                    WebElement el = driver.findElement(locator);
                    if (el.isDisplayed()) {
                        return el;
                    }
                } catch (Exception e) {
                }
                return null;
            }
        };

        WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
        if (errorMessage != "") {
            wait.withMessage(errorMessage);
        } else {
            wait.withMessage("Cannot find Element: " + locator.toString());
        }
        return wait.until(waitFn);
    } 

2. WebDriverWait自定义Boolean类等待

    public Boolean waitForElementPresent(WebDriver driver,final By locator, long timeOutInSeconds, String errorMessage) {
        Function<WebDriver, Boolean> waitFn = new Function<WebDriver, Boolean>() {
            @Override
            public Boolean apply(WebDriver driver) {
                try {
                    driver.findElement(locator);
                    return true;
                } catch (Exception e) {
                    return false;
                }
            }
        };

        WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
        if (errorMessage != "") {
            wait.withMessage(errorMessage);
        } else {
            wait.withMessage("Cannot find Element: " + locator.toString());
        }
        return wait.until(waitFn);
    }

参考博客:http://www.cnblogs.com/testing-life/p/5242668.html

原文地址:https://www.cnblogs.com/heaven1025/p/5773260.html