元素等待时间
为什么要设置等待时间呢?主要是因为界面加载时,为了防止元素还未出现影响后续的操作。
主要有三种方式:强制(线性)等待、隐式等待、显式等待
适用于appium和selenium
强制(线性)等待
import time
#休眠5秒钟
time.sleep(5)
隐式等待
只能设置一个元素等待时间,针对全局元素有效
driver.implicitly——wait(10)
显式等待
主要针对某个元素来设置的等待时间
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) driver :浏览器驱动。 timeout :最长超时时间,默认以秒为单位。 poll_frequency :检测的间隔(步长)时间,默认为0.5S。 ignored_exceptions :超时后的异常信息,默认情况下抛NoSuchElementException异常。
#先导入模块,首页判断是否有搜索id,有就进行点击
from selenium.webdriver.support.ui import WebDriverWait
element = WebDriverWait(driver, 5).until(lambda x:x.find_element_by_id("com.taobao.taobao:id/home_searchedit"))
element.click()