(9)selenium 显示等待和隐式等待

为什么需要等待的呢?页面的加载需要一个过程,很多时候,网页加载还没有完全的话,我们就点击是识别到元素,这样就容易导致用例的失败,所以才有了等

1.显示等待

我们可以自己设置条件,等待某个特定的元素出现了,我们在操作。
默认每 500 毫秒调用一次。

from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()
driver.get("https://mail.qq.com/cgi-bin/loginpage")
try:
    # 最多等待10s,等ID 元素出现
    WebDriverWait(driver,10).until(EC.presence_of_element_located(By.ID,"填写ID"))
except:
    # 如果异常就退出
    driver.quit()

2.Implicit Waits(隐式等待)

全局定义一个时间,等待固定的时间之后,在操作,隐式等待定义的全局效果。

from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
#等待10s时间
driver.implicitly_wait(10)

3.直接time等待

有些页面设计的不是很完善,time.sleep(10)有时候也是会用到

from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

#直接的等待时间
driver = webdriver.Chrome()
time.sleep(10)

你可能感兴趣的:((9)selenium 显示等待和隐式等待)