appium自動化等待的三種方法


    

1、sleep()方法
Thread.sleep(60000)強制等待60s
2、隱式等待implicitlyWait()
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
全局等待30s不管元素是否已經加載
1) 當使用了隱式等待執行測試的時候,如果WebDriver沒有在DOM中找到元素,將繼續等待,超出設定時間后則拋出找不到元素的異常
2)換句話說,當查找元素或元素並沒有立即出現的時候,隱式等待將等待一段時間再查找DOM,默認的時間是0
3) 一旦設置了隱式等待,則它存在整個WebDriver 對象實例的聲明周期中,隱式的等到會讓一個正常響應的應用的測試變慢。
4) 它將會在尋找每個元素的時候都進行等待,這樣會增加整個測試執行的時間。
implicitly_wait()方法比sleep() 更加智能,后者只能選擇一個固定的時間的等待,前者可以在一個時間范圍內智能的等待。

3、顯示等待WebDriverWait()
WebDriverWait wait = new WebDriverWait(driver, 60);
WebElement e = wait.until(new ExpectedCondition<WebElement>(){ 
@Override 
public WebElement apply(WebDriver d) { 
return 
d.findElement(By.xpath("//android.widget.RelativeLayout[@index='2']")); 
}});
e.click();
WebDriverWait類的構造方法接受了一個WebDriver對象和一個等待最長時間(60秒)。然后調用until方法,其中重寫ExpectedCondition接口中的apply方法,讓其返回一個WebElement,即加載完成的元素,然后點擊。默認情況下,WebDriverWait每500毫秒調用一次ExpectedCondition,直到有成功的返回,當然如果超過設定的值還沒有成功的返回,將拋出異常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM