selenium2中的等待
分两种 Explicit Waits Implicit Waits
Explicit Waits(显示等待)
等待一个指定的条件发生后,再去执行后续代码。比较差的应用就是Thread.sleep()(指定一个固定的时间去等待)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
WebDriverWait 和 expected_conditions两者结合能实现相当多的场景
element = WebDriverWait(ff, 10).until(expected_conditions.presence_of_element_located((By.ID, "myDynamicElement")))#等待10S,直到该元素出现#WebDriverWait 默认没0.5s执行一次ExpectedCondition,直到其返回成功(true或者不为null的对象)
其他等待条件
ExpectedConditions.element_to_be_clickable #元素是否可点击
Implicit Waits(隐式等待)
设置webdriver在查找一些不是立刻展示的元素时,保留一定的时间。默认设置为0。一旦设定,webdriver对象的整个生命周期都生效
ff.implicitly_wait(10) # seconds ff.get("http://somedomain/url_that_delays_loading") myDynamicElement = ff.find_element_by_id("myDynamicElement")
时间: 2024-10-05 03:22:01