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()