python之selenium三種等待方法

2022-08-19 20:00:15 字數 1979 閱讀 7777

前提:

我們在做web自動化時,有的時候要等待元素載入出來,才能操作,不然會報錯

1.強制等待

2.隱式等待

3.顯示等待

內容:一,強制等待

這個比較簡單,就是利用time模組的sleep的方法來實現

例子:

1

#coding = utf-8

2from time import

sleep

3from selenium import

webdriver4#

啟動瀏覽器

5 driver =webdriver.chrome()6#

7 driver.get(r'

')8#

等待3秒

9 sleep(3)

10 driver.find_element_by_css_selector("

#kw").send_keys("

selenium")

11#退出12 driver.quit()

這個就是強制等待3秒,不管你怎麼樣,就是給我停3秒,強制性的

二,隱式等待

隱式等待就是瀏覽器會在內部執行等待,但是我們可能看不出來他等待了

例子:

#

coding = utf-8

from selenium import

webdriver

#啟動瀏覽器

driver =webdriver.chrome()

#driver.get(r'

')driver.find_element_by_css_selector(

"#kw

").send_keys("

selenium")

driver.find_element_by_css_selector(

"#su

").click()

#隱式等待30秒

driver.implicitly_wait(30)

result = driver.find_elements_by_css_selector("

h3.t>a")

for i in

result:

print

(i.text)#退出

driver.quit()

三,顯示等待

因為隱式等待有缺陷,比如你想要元素載入出來就執行下面的事情,怎麼辦,這個要用顯示等待了

顯示等待要用到webdriverwait,配合該類的until()和until_not()方法,就能夠根據判斷條件而進行靈活地等待了。它主要的意思就是:程式每隔xx檢查一次,如果條件成立了,則執行下一步,否則繼續等待,直到超過設定的最長時間,然後丟擲timeoutexception

例子:

#

coding = utf-8

from selenium import

webdriver

from selenium.webdriver.support.wait import

webdriverwait

#啟動瀏覽器

driver =webdriver.chrome()

#driver.get(r'

')driver.find_element_by_css_selector(

"#kw

").send_keys("

selenium")

driver.find_element_by_css_selector(

"#su

").click()

#超時時間為30秒,每0.2秒檢查1次,直到class="tt"的元素出現

text = webdriverwait(driver,30,0.2).until(lambda x:x.find_element_by_css_selector("

.tt"

)).text

print

(text)#退出

driver.quit()

Python爬蟲利器之selenium有無介面

selenium通過模擬瀏覽器完成一些操作,但是在一些伺服器上是沒有圖形介面的,自然使用selenium操作需要在無介面操作。from selenium import webdriver driver webdriver.chrome driver.get driver.quit python3 f...

python自動化之selenium

一 環境 1 selenium 安裝 pip install selenium 版本號 後可省略,預設安裝最新版本 檢視 pip show selenium 解除安裝 pip uninstall selenium 2 瀏覽器驅動 以chrome為例 國內可訪問 windows 解壓後將驅動移動至ch...

Selenium之python(一) 準備篇

1 安裝ptyhon3 2 安裝jetbrains pycharm 2018.1.1 x64,也就是python編輯器ide 進入file setting project 專案名 project interpreter 右邊的加號 輸入selenium找到這個包 左下角install package...