為了提高腳本的穩定性,我們需要在腳本中增加等待時間
第一種:強制等待
Thread.sleep():固定休眠時間設置,Java的Thread類里提供了休眠方法sleep,導入包后就能使用
sleep()方法以毫秒為單位
Thread.sleep(3000);
----執行到此時不管什么就固定的等待三秒之后再接着執行后面的操作
第二種:隱式等待方法
implicitlyWait()方法比sleep()方法智能,sleep()方法只能在一個固定的時間等待,而implicitlyWait()可以在一個時間范圍內等待,稱為隱式等待
隱式等待采用全部設置,也就是說,你所有的findElement方法都會隱式等待10s
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
----此方法針對執行腳本的所有對象,等待10秒
第三種:顯示等待方法
WebDriverWait()
就是明確的要等到某個元素的出現或者是某個元素的可點擊等條件,等不到,就一直等,除非在規定的時間之內都沒找到,那么就跳出Exception
1、每500毫秒掃描界面是否出現元素
2、針對單一元素
3、可以設置超時時間
WebDriverWait wait=new WebDriverWait(driver, 10);
WebElement wl = wait.until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.cssSelector(".red_box"));
}
});
----在規定時間內等待 在10秒的范圍內 出現.red_box元素就往下執行,如果10秒過后還沒出現就跳出
轉自:http://www.cnblogs.com/xu-jia-li/p/6566709.html