Apiium等待的几种方式
Appium的等待方式一般有三种,隐式等待,休眠等待,显式等待 ,下面分别来看看
1、隐式等待
- self.driver.implicitly_wait(IMPLICITLY_WAIT_TIME),全局等待,参数是秒,隐式等待一旦设置,就贯穿整个WebDriver的生命周期
- implicitly_wait会在每个元素查找的时候都等待设置的时长,到达时长后找不到元素会跑出找不到元素的异常
- implicitly_wait会影响脚本的执行速度
2、休眠等待
- sleep:from time import sleep,参数是秒,可穿插在代码中,使用此函数后程序会暂停指定的秒数,等待之前的方法执行完毕
一般不建议使用,影响代码的观赏性,sleep在等待元素加载时也不会智能的判断元素是否加载完成
3、显式等待 WebDriverWait
- from selenium.webdriver.support import expected_conditions
- from selenium.webdriver.support.wait import WebDriverWait
- WebDriver(driver,timeout,poll_frequency=0.5).until(expected_conditions.visibility_of_element_located(*locator))
- driver传入的WebDriver实例即我们代码中用的driver,timeout等待时长,poll_frequency执行until或until_not的时间间隔,默认0.5,locator需要等待的元素一般已元组的形式传入,如(By.XPATH,"//*[@text=‘xxxxx‘]")
- 显式等待会在指定的时间内检索查找,一旦找到元素就立即执行返回,不需要等待时间执行完,如果规定时间内没有检索到就报找不到元素异常
4、until和until_not以及expected_conditions的方法
- until是等待元素出现或其他什么操作,until_not正好是相反
- expected_conditions的方法如下图,通常都是使用visibility_of_element_located判断元素是否显示