有時頁面元素還沒載入出來,所以需要等待
等待分為強制等待time sleep(),隱性等待implicitly_wait(),顯性等待webdriverwait()
1.強制等待,無法確定等待時間,等久了,效率慢,等少了,元素沒出來
time.sleep(2)
2.隱式等待,只能用來等待元素出現
browser.implicitly_wait(10)
3.顯式等待
定時器wait = webdriverwait(browser,20)
設定條件
e = wait.until(ec.visibility_of_element_located((by.xpath, 「//a[contains(text(),『lemon.ke.qq.com』)]」)))
from selenium.webdriver import chrome
from selenium.webdriver.support.wait import webdriverwait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import by
browser = chrome()
browser.get("")
# 定位輸入框
e = browser.find_element_by_id("kw")
# 傳送資料,輸入文字
e.send_keys("檸檬班")
# 如果有乙個form表單,就不需要定位,直接e.submit()就可以了
# e.submit()
e_submit = browser.find_element_by_id("su")
e_submit.click
# 發現有「no such element"的錯誤,有可能是因為沒有等待
# 顯式等待
# 定時器
wait = webdriverwait(browser,20)
# **設定條件,條件表示式是乙個元組**
e = wait.until(ec.visibility_of_element_located((by.xpath, "//a[contains(text(),'lemon.ke.qq.com')]")))
# e = browser.find_element_by_xpath("//a[contains(text(),'lemon.ke.qq.com')]")
e.click()
selenium的三種等待
1 強制等待 不管頁面是否載入出來,強制讓進城等待。2 隱式等待 driver.implicitly wait 20 3 顯示等待 滿足一些內建的等待條件,這要這些條件滿足,就等待結束。這些條件比如 特定頁面元素載入出來。建立顯示等待的步驟 導包from selenium.webdriver.sup...
selenium三種等待方式
很多時候,我們進行元素定位時無法按預期成功定位到元素,但是我們的 又確保準確無誤,那是什麼原因呢?其實,原因很簡單,大致分為2種 1,所定位的元素在frame iframe中 2,未設定合理的等待 為什麼未設定合理等待的時候,很有可能無法正確定位元素呢?我們知道,的執行速度很快很快,但瀏覽器的渲染速...
Selenium 三種等待方式詳解
我們在做web自動化時,一般要等待頁面元素載入完成後,才能執行操作,否則會報找不到元素的錯誤,這樣就要求我們在有些場景下加等待時間。我們平常用到的有三種等待方式 利用time模組的sleep方法來實現,最簡單粗暴的等待方法 coding utf 8 from time import sleep fr...