Selenium显示隐式等待

Posted baoyu7yi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

以上是关于Selenium显示隐式等待的主要内容,如果未能解决你的问题,请参考以下文章

selenium显示等待和隐式等待的区别

selenium显示等待和隐式等待

转 Python selenium 强制等待显示等待隐式等待

Selenium 三种等待方式(强制等待、隐式等待、显示等待)

selenium的显示等待和隐式等待的区别

selenium的显示等待和隐式等待区别