等待页面的加载分为两种形式,隐式和显式
1. 隐式
1 // 定位页面元素时,最多等待10s(相当于全局设置) 2 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); |
2. 显式
1 //等待WebElement,最多等待60s 2 WebDriverWait wait = new WebDriverWait(driver, 60) ; 3 wait.until(new ExpectedCondition<WebElement>() { //等待WebElement元素出现 5 @Override 6 public WebElement apply(WebDriver d) { 7 8 return d.findElement(By.id("userName")); 9 10 } 11 12 }); |
备注:
1. unitl会在以下几种情况退出等待:
ExpectedCondition的返回值不是空
ExpectedCondition抛出了不可忽略的异常(除NotFoundException以外)
ExpectedCondition的时间已经达到了60s
系统所在的线程被中断
建议:
1. 测试时,都进行隐式的设置,在需要时间比较长的地方进行显式设置