1.隐式等待:
driver.implicitly_wait(30)
等待一个元素被发现,或一个命令完成,超出了设置时间则抛出异常,此为全局变量,是针对Driver 每次执行命令的 最长执行时间也可以理解为超时时间
2.显示等待:
from selenium.webdriver.support.ui import WebDriverWait #WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) wait = WebDriverWait(context.driver, 30) is_disappeared = wait.until_not(lambda x:x.find_element(by=how, value=what).is_displayed()) element = wait.until(lambda x:x.find_elements_by_xpath(locatorString))
明确的要等到某个元素的出现或者是某个元素的可点击等条件,每隔poll_frequency=0.5(默认值)查找一下元素,等不到,就一直等,除非在规定的时间timeout之内都没找到,那么就跳出Exception。
3.线程等待:
import time time.sleep(2)
Notes:若同时设置了隐式等待和显示等待,则以隐式等待为第一优先级,也就是说,若隐式等待时间大于显示等待,则执行显示等待时,显示等待时间设置无效,因为driver若找不到元素,会先等待隐式等待的时间。