码迷,mamicode.com
首页 > 其他好文 > 详细

【Selenium】显示、隐式等待

时间:2017-07-05 01:14:11      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:exce   pre   状态   元素   find   drive   ebe   driver   condition   

显示等待

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);

【Selenium】显示、隐式等待

标签:exce   pre   状态   元素   find   drive   ebe   driver   condition   

原文地址:http://www.cnblogs.com/baoyu7yi/p/7119187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!