1.强制等待
driver = webdriver.Chrome()
driver.get("http://www.testcom.cn/")
time.sleep(3) # 强制等待时间3s,不管页面是否加载完成,每个步骤都需要添加
2.隐式等待
driver = webdriver.Chrome()
driver.get("http://www.test.cn/")
driver.implicitly_wait(3) # 设置一次全局使用,强制等待时间3s,不管页面是否加载完成
3.显示等待:在设定的超时时间内,如果页面元素出现,进行下一步操作,没有出现报错,最大等待时间是设置的超时时间,判断准确,不会浪费多余的等待时间,在用例中使用,可以提高执行效率,推荐使用
from selenium.webdriver.support.wait import WebDriverWait
# 语法
WebDriverWait(driver, 超时时间, 调用频率, 要忽略的异常).until(要执行的方法, 超时时返回的错误信息)
# 一般和expected_conditions搭配使用,判断某元素是否出现
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(self.driver, 30, 1).until(EC.presence_of_element_located((By.XPATH, "//a[@class='login']"))).click()