亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python selenium系列(四)元素等待

發布時間:2020-07-06 11:12:10 來源:網絡 閱讀:5013 作者:平山 欄目:編程語言

前言

在前面的selenium系列(二)元素定位方式selenium系列(三)常用操作類型及方法兩節中,已經介紹了web頁面元素的識別定位、操作等技術,可能你會覺得掌握這兩項技術就可以實施web自動化了,答案基本是這樣的,畢竟元素定位和操作是核心技術。但是,在某些場景,腳本的運行并非預期那樣,如,要操作的元素用常規方法無法識別、元素可以識別但在腳本運行時卻未如期而至等。為了解決這些疑難雜癥,接下來三節內容將會介紹處理這些問題的通用方法。

在本節,主要介紹元素等待的使用方法和場景,該方法是開發穩定、高容錯性自動化腳本的前提。

 

為什么需要等待?

元素等待是為了解決如下場景的問題:腳本執行時,腳本的執行速度和頁面元素的加載速度未必一致,也就是說,可能出現腳本已經運行到某個元素,但該元素尚未加載到頁面,此時腳本會因無法定位到該元素而導致執行失敗。元素等待本質是為了解決時序上不匹配的問題。

 

selenium元素等待方法

適當的等待可以提高腳本的穩定性,selenium主要有三種等待方法:
1. 強制等待 time.sleep(x)
2. 顯式等待 WebDriverWait
3. 隱式等待 implicitly_wait
  

其中,三種等待方法的作用和區別,如下:

強制等待,也就是常說的死等待,使用time模塊提供的sleep方法,腳本在等待sleepx x秒后才執行,此時腳本也許出現了無效等待,即元素已經出現,可以繼續操作,但因指定的時間未到,腳本無法執行,因而,在實際Web UI開發中應杜絕sleep等待

 

顯式等待,WebDriver提供的針對元素級別的、靈活、智能的等待方法,通過配合until()until_not()ExpectedCondition等條件的使用,默認每500ms檢查一次條件狀態,可以及時將腳本從等待中喚醒,避免無效等待,在實際應用中推薦使用該方法。

該等待的調用方法如下:

WebDriverWait(driver, 超時時長, 調用頻率, 忽略異常).until(可執行方法, 超時時返回的信息)

 

隱式等待,WebDriver提供的針對driver級別的適用整個生命周期的等待方法,該等待是全局設置,因而只需在實例化driver后設置一次即可。從等待作用上看,是可以滿足需要的,但是考慮到實際應用場景,driver要等待的元素和腳本要操作的元素未必相同,也就是說,腳本要操作的元素已經出現,但因為設置了全局等待,driver也會繼續等待頁面上其他無關元素,直至整個頁面加載完畢。因而,與顯式等待相比,可能出現無效等待的情況。

 

等待方法實戰舉例

1.強制等待方法應用實例

python selenium系列(四)元素等待

2.顯式等待應用實例

python selenium系列(四)元素等待

 

3.隱式等待應用實例

python selenium系列(四)元素等待

 

總結

本節主要介紹Web UI自動化中三種元素等待方法,并講解了各自的優缺點,實際開發中推薦使用顯示等待,最后,為了便于理解和應用,針對每種等待方法,編寫了對應的腳本。

 

其他資源

關于python selenium元素常用操作方法的視頻講解,請參看:http://i.youku.com/weiworld521  27節。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲靖市| 丹东市| 梅河口市| 枣庄市| 太白县| 平乡县| 太康县| 昆明市| 南投县| 洪洞县| 泸州市| 福泉市| 宾阳县| 隆回县| 普格县| 巩义市| 龙井市| 梁平县| 宾阳县| 鄂托克旗| 峨边| 永新县| 连平县| 大埔区| 行唐县| 兴城市| 丰县| 光山县| 桑植县| 合作市| 鄂托克前旗| 包头市| 沙湾县| 宝山区| 搜索| 镇原县| 洪湖市| 周宁县| 黑山县| 广安市| 黎川县|