首页 > 代码库 > selenium 延迟等待的三种方式
selenium 延迟等待的三种方式
1、最直接普通的方式:这个是设置固定的等待时间
Thread.sleep(1000);
2、显示等待方式(Explicit Wait):就是明确的要等待的元素在规定的时间之内都没找到,那么就抛出Exception.代码示例如下
public LoginPage LoginExpectingFailure(){
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("dologin")));
这里,10是要等待的秒数.如果没有满足until()方法中的条件,就会始终在这里wait 10秒,依然找不到,就抛出异常 。
还可以这样写:
WebDriver chrome= new ChromeDriver() ;
chrome.get( http://somedomain/url_that_delays_loading);
WebElement e = (new WebDriverWait( chrome, 10)) .until(
new ExpectedCondition< WebElement>(){
@Override //方法重写
public WebElement ByPresent( WebDriver d) {
return d.findElement( By.id("id locator"));
}
}
);
这样就通过回调函数,直接获得了这个WebElement.也就是页面元素 。
3、隐式等待方式(implicitlyWait):设置脚本在查找元素时的最大等待时间;
隐式等待方式(implicitlyWait):设置脚本在查找元素时的最大等待时间;
driver.manage().timeouts().implicitlyWait(second, TimeUnit.SECONDS);
代码示例如下:
public boolean isByElementDisplayed(By by, int time,WebDriver chrome) {
boolean status = true;
while(!isByPresent(chrome, by)){
chrome.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
}
return status;
}
public boolean isByPresent(WebDriver chrome, By by){
boolean display = false;
try{
chrome.findElement(by).isDisplayed();
return display= true;
}catch(NoSuchElementException e){
return display;
}
} 这里用while循环是如果明确需要查找的元素未找到,就继续循环等待;
selenium 延迟等待的三种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。