新聞中心
作為小編講述不少的內(nèi)容,大家應(yīng)該了解這個工具的重要意義了吧,之前也跟大家提及關(guān)于這個工具的安裝內(nèi)容,今日再給大家詳細說下怎么去使用,利用最簡單,最快捷的方式去使用,想必大家都迫不及待想要了解了吧~那就一起來看下吧~

selenium三種等待方式
有時候為了保證腳本運行的穩(wěn)定性,需要腳本中添加等待時間。
強制等待
第一種也是最簡單粗暴的一種辦法就是強制等待sleep(xx),需要引入“time”模塊,這種叫強制等待,不管你瀏覽器是否加載完了,程序都得等待3秒,3秒一到,繼續(xù)執(zhí)行下面的代碼,作為調(diào)試很有用,有時候也可以在代碼里這樣等待,不過不建議總用這種等待方式,太死板,嚴重影響程序執(zhí)行速度。
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('http://baidu.com')
time.sleep(3) # 強制等待3秒再執(zhí)行下一步
print(driver.current_url)
driver.quit()
隱性等待
第二種辦法叫隱性等待,通過添加 implicitly_wait() 方法就可以方便的實現(xiàn)智能等待;implicitly_wait(30) 的用法應(yīng)該比 time.sleep() 更智能,后者只能選擇一個固定的時間的等待,前者可以 在一個時間范圍內(nèi)智能的等待。
# -*- coding: utf-8 -*-
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(30) # 隱性等待,最長等30秒
driver.get('http://baidu.com')
print(driver.current_url)
driver.quit()
顯性等待
Init
l driver: 傳入WebDriver實例,即我們上例中的driver
l timeout: 超時時間,等待的最長時間(同時要考慮隱性等待時間)
l poll_frequency: 調(diào)用until或until_not中的方法的間隔時間,默認是0.5秒
l ignored_exceptions: 忽略的異常,如果在調(diào)用until或until_not的過程中拋出這個元組中的異常,則不中斷代碼,繼續(xù)等待,如果拋出的是這個元組外的異常,則中斷代碼,拋出異常。默認只有NoSuchElementException。
Until
method: 在等待期間,每隔一段時間(__init__中的poll_frequency)調(diào)用這個傳入的方法,直到返回值不是False
message: 如果超時,拋出TimeoutException,將message傳入異常
until_not
與until相反,until是當某元素出現(xiàn)或什么條件成立則繼續(xù)執(zhí)行,
until_not是當某元素消失或什么條件不成立則繼續(xù)執(zhí)行,參數(shù)也相同,不再贅述。
在這里,你可以用selenium提供的 expected_conditions 模塊中的各種條件,也可以用WebElement的 is_displayed() 、is_enabled()、**is_selected() **方法,或者用自己封裝的方法都可以。
更多學(xué)習內(nèi)容,點擊查詢python學(xué)習網(wǎng)。
當前標題:創(chuàng)新互聯(lián)Python教程:python自動化框架selenium怎么用?
網(wǎng)頁地址:http://www.5511xx.com/article/dhopiji.html


咨詢
建站咨詢
