国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

selenium WebDriver 中的幾種等待--sleep(),implicitly_wait(),WebDriverWait()

這篇具有很好參考價(jià)值的文章主要介紹了selenium WebDriver 中的幾種等待--sleep(),implicitly_wait(),WebDriverWait()。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

強(qiáng)制等待:sleep()

隱式等待:implicitly_wait()

顯示等待:WebDriverWait()

與until()或者until_not()方法結(jié)合使用

WebDriverWait與expected_conditions結(jié)合使用

顯示等待,自定義等待條件


強(qiáng)制等待:sleep()

import time
sleep(5)  #等待5秒

設(shè)置固定休眠時(shí)間,單位為秒。 由python的time包提供, 導(dǎo)入 time 包后就可以使用。
缺點(diǎn):不智能,使用太多的sleep會(huì)影響腳本運(yùn)行速度。

隱式等待:implicitly_wait()

driver.implicitly_wait(10) #隱式等待10秒

由webdriver提供的方法,一旦設(shè)置,這個(gè)隱式等待會(huì)在WebDriver對(duì)象實(shí)例的整個(gè)生命周期起作用,它不針對(duì)某一個(gè)元素,是全局元素等待,即在定位元素時(shí),需要等待頁(yè)面全部元素加載完成,才會(huì)執(zhí)行下一個(gè)語(yǔ)句。如果超出了設(shè)置時(shí)間的則拋出異常。

缺點(diǎn):當(dāng)頁(yè)面某些js無(wú)法加載,但是想找的元素已經(jīng)出來(lái)了,它還是會(huì)繼續(xù)等待,直到頁(yè)面加載完成(瀏覽器標(biāo)簽左上角圈圈不再轉(zhuǎn)),才會(huì)執(zhí)行下一句。某些情況下會(huì)影響腳本執(zhí)行速度。

顯示等待:WebDriverWait()

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
需要通過(guò)from selenium.webdriver.support.wait import WebDriverWait導(dǎo)入模塊
  • driver:瀏覽器驅(qū)動(dòng)
  • timeout:最長(zhǎng)超時(shí)時(shí)間,默認(rèn)以秒為單位
  • poll_frequency:檢測(cè)的間隔步長(zhǎng),默認(rèn)為0.5s
  • ignored_exceptions:超時(shí)后的拋出的異常信息,默認(rèn)拋出NoSuchElementExeception異常。

與until()或者until_not()方法結(jié)合使用

WebDriverWait(driver,10).until(method,message="")
#調(diào)用該方法提供的驅(qū)動(dòng)程序作為參數(shù),直到返回值為True

WebDriverWait(driver,10).until_not(method,message="")
#調(diào)用該方法提供的驅(qū)動(dòng)程序作為參數(shù),直到返回值為False

在設(shè)置時(shí)間(10s)內(nèi),等待后面的條件發(fā)生。如果超過(guò)設(shè)置時(shí)間未發(fā)生,則拋出異常。在等待期間,每隔一定時(shí)間(默認(rèn)0.5秒),調(diào)用until或until_not里的方法,直到它返回True或False.

WebDriverWait與expected_conditions結(jié)合使用

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait = WebDriverWait(driver,10,0.5)
element =waite.until(EC.presence_of_element_located((By.ID,"kw"),message="")
# 此處注意,如果省略message=“”,則By.ID外面是兩層()

expected_conditions類提供的預(yù)期條件判斷的方法

方法

說(shuō)明

title_is

判斷當(dāng)前頁(yè)面的 title 是否完全等于(==)預(yù)期字符串,返回布爾值

title_contains

判斷當(dāng)前頁(yè)面的 title 是否包含預(yù)期字符串,返回布爾值

presence_of_element_located

判斷某個(gè)元素是否被加到了 dom 樹里,并不代表該元素一定可見

visibility_of_element_located

判斷元素是否可見(可見代表元素非隱藏,并且元素寬和高都不等于 0)

visibility_of

同上一方法,只是上一方法參數(shù)為locator,這個(gè)方法參數(shù)是 定位后的元素

presence_of_all_elements_located

判斷是否至少有 1 個(gè)元素存在于 dom 樹中。舉例:如果頁(yè)面上有 n 個(gè)元素的 class 都是’wp’,那么只要有 1 個(gè)元素存在,這個(gè)方法就返回 True

text_to_be_present_in_element

判斷某個(gè)元素中的 text 是否 包含 了預(yù)期的字符串

text_to_be_present_in_element_value

判斷某個(gè)元素中的 value 屬性是否包含 了預(yù)期的字符串

frame_to_be_available_and_switch_to_it

判斷該 frame 是否可以 switch進(jìn)去,如果可以的話,返回 True 并且 switch 進(jìn)去,否則返回 False

invisibility_of_element_located

判斷某個(gè)元素中是否不存在于dom樹或不可見

element_to_be_clickable

判斷某個(gè)元素中是否可見并且可點(diǎn)擊

staleness_of

等某個(gè)元素從 dom 樹中移除,注意,這個(gè)方法也是返回 True或 False

element_to_be_selected

判斷某個(gè)元素是否被選中了,一般用在下拉列表

element_selection_state_to_be

判斷某個(gè)元素的選中狀態(tài)是否符合預(yù)期

element_located_selection_state_to_be

跟上面的方法作用一樣,只是上面的方法傳入定位到的 element,而這個(gè)方法傳入 locator

alert_is_present

判斷頁(yè)面上是否存在 alert

顯示等待,自定義等待條件

#設(shè)置等待
wait = WebDriverWait(driver,10,0.5)
#使用匿名函數(shù)
wait.until(lambda diver:driver.find_element_by_id('kw'))

selenium WebDriver 中的幾種等待--sleep(),implicitly_wait(),WebDriverWait(),selenium自動(dòng)化測(cè)試,selenium,javascript,測(cè)試工具,python,jmeter,自動(dòng)化測(cè)試,接口測(cè)試文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-598578.html

到了這里,關(guān)于selenium WebDriver 中的幾種等待--sleep(),implicitly_wait(),WebDriverWait()的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Selenium中的隱式等待和顯式等待

    Selenium中的隱式等待和顯式等待

    在Selenium中,“等待”在執(zhí)行測(cè)試中起著重要作用。在本文中,您將學(xué)習(xí)Selenium中“隱式”和“顯式”等待的各個(gè)方面。 在本文中,您將學(xué)習(xí)到 1.?為什么我們需要在selenium中等待? 2.?隱瞞等待 3.?明確等待 4.?流利的等待 為什么我們需要在Selenium中等待? 大多數(shù)Web應(yīng)用程序都

    2024年02月07日
    瀏覽(21)
  • selenium中的三種等待方式以及顯示等待和隱式等待區(qū)別

    selenium中一般分為三種等待方式:顯示等待、隱式等待、sleep強(qiáng)制等待 1、顯示等待(有條件) 程序提前指定等待條件和等待時(shí)間,在查找元素時(shí),判斷規(guī)定時(shí)間內(nèi)是否滿足條件,滿足則繼續(xù)執(zhí)行,不滿足或超出時(shí)間則拋出異常 2、隱式等待(無(wú)條件) 程序提前指定等待時(shí)間,在查

    2024年02月12日
    瀏覽(22)
  • Selenium 3和JUnit 5中的顯示等待與隱式等待

    目錄 顯示等待(Explicit Wait) 什么是顯示等待? 如何實(shí)現(xiàn)顯示等待? 顯示等待條件 隱式等待(Implicit Wait) 什么是隱式等待? 如何實(shí)現(xiàn)隱式等待? 顯示等待和隱式等待的區(qū)別 強(qiáng)制等待 在Selenium自動(dòng)化測(cè)試中,等待是一個(gè)至關(guān)重要的概念。網(wǎng)頁(yè)加載速度、元素的可見性以及

    2024年02月09日
    瀏覽(18)
  • Java Selenium中的等待和超時(shí)

    在執(zhí)行 selenium 自動(dòng)化測(cè)試時(shí),我們使用等待來(lái)使我們的測(cè)試可靠且健壯。最常見的是,在運(yùn)行自動(dòng)化測(cè)試時(shí),如果在加載 Webdriver 想要交互的特定元素時(shí)出現(xiàn)延遲,我們會(huì)看到“ElementNotVisibleException”。 等待和超時(shí)可幫助用戶在執(zhí)行某些操作或在應(yīng)用程序中的不同頁(yè)面之間導(dǎo)

    2024年02月03日
    瀏覽(35)
  • Selenium無(wú)法定位元素的幾種解決方案

    Selenium無(wú)法定位元素的幾種解決方案

    ?? 視頻學(xué)習(xí): 文末有免費(fèi)的配套視頻可觀看 ??? 關(guān)注公眾號(hào)【互聯(lián)網(wǎng)雜貨鋪】,回復(fù) 1? ,免費(fèi)獲取軟件測(cè)試全套資料,資料在手,漲薪更快 1、frame/iframe表單嵌套 WebDriver只能在一個(gè)頁(yè)面上對(duì)元素識(shí)別與定位,對(duì)于frame/iframe表單內(nèi)嵌的頁(yè)面元素?zé)o法直接定位。 解決方法:

    2024年02月22日
    瀏覽(26)
  • Selenium 隱藏瀏覽器指紋特征的幾種方式

    Selenium 隱藏瀏覽器指紋特征的幾種方式

    我們使用 Selenium 對(duì)網(wǎng)頁(yè)進(jìn)行爬蟲時(shí),如果不做任何處理直接進(jìn)行爬取,會(huì)導(dǎo)致很多特征是暴露的 對(duì)一些做了反爬的網(wǎng)站,做了特征檢測(cè),用來(lái)阻止一些惡意爬蟲 本篇文章將介紹幾種常用的隱藏瀏覽器指紋特征的方式 目標(biāo)對(duì)象: aHR0cHM6Ly9xaWthbi5jcXZpcC5jb20vUWlrYW4vU2VhcmNoL0FkdmFuY2

    2024年02月08日
    瀏覽(23)
  • selenium中g(shù)et_attribute的幾種用法

    selenium中g(shù)et_attribute的幾種用法

    使用下面的html頁(yè)面進(jìn)行介紹: 1、獲取元素的文本內(nèi)容: ①element.text ②element.get_attribute(‘innerText’) ③element.get_attribute(‘textContent’) 2、獲取整個(gè)元素對(duì)應(yīng)的html: ①獲取某個(gè)元素 內(nèi)部 的HTML文本內(nèi)容 ②獲取整個(gè)元素對(duì)應(yīng)的HTML文本內(nèi)容 3、input輸入框的元素,要獲取里面的輸

    2024年02月11日
    瀏覽(9)
  • 抓緊收藏,Selenium無(wú)法定位元素的幾種解決方案

    抓緊收藏,Selenium無(wú)法定位元素的幾種解決方案

    01、frame/iframe表單嵌套 WebDriver只能在一個(gè)頁(yè)面上對(duì)元素識(shí)別與定位,對(duì)于frame/iframe表單內(nèi)嵌的頁(yè)面元素?zé)o法直接定位。 解決方法 : driver.switch_to.frame ( id/name/obj ) switch_to.frame()默認(rèn)可以直接取表單的id或name屬性。如果沒(méi)有可用的id和name屬性,可以先定位到frame/iframe,再將定位

    2024年02月20日
    瀏覽(17)
  • Selenium無(wú)法定位元素的幾種解決方案(超詳細(xì)整理)

    Selenium無(wú)法定位元素的幾種解決方案(超詳細(xì)整理)

    ?? 視頻學(xué)習(xí): 文末有免費(fèi)的配套視頻可觀看 ??? 關(guān)注公眾號(hào)【互聯(lián)網(wǎng)雜貨鋪】,回復(fù) 1? ,免費(fèi)獲取軟件測(cè)試全套資料,資料在手,漲薪更快 WebDriver只能在一個(gè)頁(yè)面上對(duì)元素識(shí)別與定位,對(duì)于frame/iframe表單內(nèi)嵌的頁(yè)面元素?zé)o法直接定位。 解決方法: driver.switch_to.frame(id/

    2024年02月20日
    瀏覽(28)
  • webdriver 的三種等待方式(強(qiáng)制等待、隱式等待、顯示等待)

    在自動(dòng)化測(cè)試腳本的運(yùn)行過(guò)程中,webdriver操作瀏覽器的時(shí)候,對(duì)于元素的定位是有一定的超時(shí)時(shí)間,大致應(yīng)該在1-3秒的樣子,如果這個(gè)時(shí)間內(nèi)仍然定位不到元素,就會(huì)拋出異常,中止腳本執(zhí)行。我們可以通過(guò)在腳本中設(shè)置等待的方式來(lái)避免由于網(wǎng)絡(luò)延遲或?yàn)g覽器卡頓導(dǎo)致的偶

    2024年02月13日
    瀏覽(14)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包