1.强制等待
time.sleep(秒数)
不管浏览器加载完与否,都要等待特定秒数。
2.隐式等待
implicitly_wait(秒数)
加载完成就不需要再等。隐式等待设置一次对程序整个全程都起作用,所以设置一次即可。
from selenium import webdriver
#设置隐式等待,最长30秒
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get("https://www.csdn.net")
#输出页面URL
print(diver.current_url)
3.显式等待
WebDriverWait(driver = self.dr,timeout = 超时时间,poll_frequency = 检查频率,ignored_exceptions = None)
↑一般只会用到前三项
until()语句之外,unitl_not()语句也可供选择。两个语句的使用方法都是(method,message = "如果返回结果失败后弹出的信息")
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.csdn.net")
#使用显式等待,超过20秒则超时,每0.5秒检查一次
try:
WebDriverWait(dr,20,0.5).until('首页')
finally:
print(driver.find_element_by_link_text('首页').get_attribute('href'))
#退出
driver.quit()
浙公网安备 33010602011771号