Selenium-設置等待時間


參考文章鏈接:http://www.jb51.net/article/92684.htm

感謝分享

1.強制等待:通過Python中time包提供的sleep()方法設置固定的等待時間

2.隱式等待:其實就相當於設置全局的等待,在定位元素時,對所有元素設置超時時間。如果頁面元素已經出現,但頁面未加載完,其仍會繼續等待,直到頁面加載完成。隱式地等待一個無素被發現或一個命令完成,這個方法每次會話只需要調用一次,最大設置30秒

語法:driver.implicitly_wait(30)

3.顯式等待:通過WebDriverWait類和該類的until()方法配合,實現靈活的等待。它的執行過程是,首先設置一個超時時間,程序每隔一段時間查看一次頁面,知道until()方法中的條件成立,則執行下一步,否則繼續等待,直到超過設置的超時時間,然后拋出異常TimeoutException。

這個類的路勁 from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait類實例化時需要傳入的參數:driver:WebDriver實例

                      timeout:等待的最長時間

                     【poll_frequency】 :調用until或until_not中的方法的間隔時間,默認是0.5  

                     【ignored_exceptions】:忽略的異常,如果在調用until或until_not的過程中拋出這個元組中的異常,則不中斷代碼,繼續等待,如果拋出的是這個元組外的異常,則中斷代碼,拋出異常。默認只有                                                                                                                  NoSuchElementException。

until()方法需要傳入的參數:method: 在等待期間,每隔一段時間調用這個傳入的方法,直到返回值不是False
               message: 如果超時,拋出TimeoutException,將message傳入異常
 
 
顯式等待實例

#encoding=utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
#from selenium.webdriver.support.wait import WebDriverWait

browser=webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.maximize_window()
#設置顯式等待時間
wait = WebDriverWait(browser,10)
#定位到“設置”菜單,此處用到了顯示等待“設置”元素
setting_menu = wait.until(lambda ele : ele.find_element_by_link_text("設置"))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM