zoukankan      html  css  js  c++  java
  • 【Selenium】显示、隐式等待

    显示等待

    WebDriverWait

    超时抛出TimeOutException,默认500毫秒

    public class WaitToReturnElement {

    /*
    * 设置超时时间为5秒,返回指定xpath的WebElement
    * */
    public static WebElement waitForByXpath(final WebDriver driver,final String xpath) {
    WebDriverWait wait = new WebDriverWait(driver, 5);
    return wait.until(new ExpectedCondition<WebElement>() {

    public WebElement apply(WebDriver arg0) {
    return driver.findElement(By.xpath(xpath));
    }

    });
    }

    /*
    * 设置超时时间为10秒,返回指定id的WebElement
    * */
    public static WebElement waitForById(final WebDriver driver,final String id) {
    WebDriverWait wait = new WebDriverWait(driver, 10);
    return wait.until(new ExpectedCondition<WebElement>() {

    public WebElement apply(WebDriver arg0) {
    return driver.findElement(By.id(id));
    }

    });
    }

    /*
    * 设置超时时间为10秒,返回指定xpath的WebElement是否出现
    * */
    public static Boolean isElementDisplayed(final WebDriver driver,final String xpath) {
    WebDriverWait wait = new WebDriverWait(driver, 10);
    return wait.until(new ExpectedCondition<Boolean>() {

    public Boolean apply(WebDriver arg0) {
    return driver.findElement(By.xpath(xpath)).isDisplayed();
    }
    });
    }

    }

    ExpectedCondition

    等待元素直到可点击状态
    WebDriverWait wait=new WebDriverWait(driver,10);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("")));

    隐式等待

    查找WebDriver无法使用的元素时等待,默认0,生命周期整个WebDriver

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  • 相关阅读:
    如何让spring mvc web应用启动时就执行特定处理
    关联查询left join中on 和where 的区别
    c语言中'.'与'>'的区别
    申请博客园的计划
    java学习环境安装与配置
    ACM之旅之坎坷编译器
    2013年小结
    申请博客园的计划
    生命在于运动
    委托和事件
  • 原文地址:https://www.cnblogs.com/baoyu7yi/p/7119187.html
Copyright © 2011-2022 走看看