强制等待:

  1. time.sleep(3)
  2. 在需要等待的操作之前加上等待时间time.sleep(3)强制等待固定时间3s。

隐式等待:

  1. driver.implicitly_wait(5)
  2. 隐式等待是一种智能等待,可以自动判断需要等待多久,括号中的5代表的是最大等待时间
  3. 隐式等待只需要在声明driver之后,写一次,就能影响后面所有的代码。
  4. 隐式等待判断的是页面元素的加载,如果页面没有刷新过,隐式等待就不起作用,比如跳弹出框。

显式等待:

显示等待的代码定义了等待条件,只有该条件触发,才执行后续代码。

1 # 导入包
2 from selenium.webdriver.support import expected_conditions
3 from selenium.webdriver.support.wait import WebDriverWait
4 # 显式等待
5 WebDriverWait(driver, 30, 0.5).until(expected_conditions.alert_is_present())

上述代码最大等待时间为30s,每0.5s去检测一次条件是否成立,一旦条件达到就执行下一步操作,否则最多等待30s还没达到条件就报错。

alert_is_present是条件,判断是否存在弹出框。