隱式等待和顯示等待

一、背景

在打開應(yīng)用程序的頁面時(shí),總會有加載的時(shí)間,有時(shí)候在獲取頁面元素時(shí),頁面還沒有加載完畢,導(dǎo)致無法定位某些想要獲取的元素,此時(shí)就需要利用等待方法。

二、隱式等待

  • 方法:driver.implicitly_wait(時(shí)間)

    driver.implicitly_wait(5)
    
  • 作用:設(shè)置隱式等待后,后續(xù)所有的定位元素的方法,都會在這個(gè)時(shí)間內(nèi)等待元素的出現(xiàn),如果出現(xiàn)進(jìn)行下一步操作,若沒有出現(xiàn)則報(bào)錯(cuò)。

三、顯示等待

  • 方法:WebDriverWait(driver,時(shí)間,頻率).until(方法)

    from selenium.webdriver.support.wait import WebDriverWait
    WebDriverWait(driver,5).until(XXX)
    
  • 作用:設(shè)置顯示等待后,會在設(shè)定的時(shí)間范圍內(nèi)按照一定的頻率查找該元素是否出現(xiàn)(默認(rèn)查找頻率時(shí)0.5s,可以在方法中進(jìn)行修改),若元素出現(xiàn),則進(jìn)行下一步操作,若沒有出現(xiàn),則報(bào)NoSuchElementException錯(cuò)誤。

四、使用場景

  • 作用域:顯示等待對單個(gè)元素有效,方法靈活,擴(kuò)展性強(qiáng),但是代碼量復(fù)雜,后續(xù)可以通過封裝減少使用的復(fù)雜度;隱式等待對全局有效,方法不靈活,代碼效率不高,但是使用簡單。
  • 方法:顯示等待 WebDriverWait 對象的 until 方法,隱式等待 driver 的 implicitly_wait 方法。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容