appium三種等待方式

2021-09-10 18:40:22 字數 1972 閱讀 2164

#第一種 sleep(): 設定固定休眠時間。 python 的 time 包提供了休眠方法 sleep() , 匯入 time包後就可以使用 sleep()進行指令碼的執行過程進行休眠。

#匯入 time 包

import time

time.sleep()

#第二種 implicitly_wait():是 webdirver 提供的乙個超時等待。隱的等待乙個元素被發現,或乙個命令完成。如果超出了設定時間的則丟擲異常。

#implicitly_wait():隱式等待

#當使用了隱式等待執行測試的時候,如果 webdriver沒有在 dom中找到元素,將繼續等待,超出設定時間後則丟擲找不到元素的異常

#換句話說,當查詢元素或元素並沒有立即出現的時候,隱式等待將等待一段時間再查詢 dom,預設的時間是0

#一旦設定了隱式等待,則它存在整個 webdriver 物件例項的宣告週期中,隱式的等到會讓乙個正常響應的應用的測試變慢,

#它將會在尋找每個元素的時候都進行等待,這樣會增加整個測試執行的時間。

#implicitly_wait()方法比 sleep() 更加智慧型,後者只能選擇乙個固定的時間的等待,前者可以在乙個時間

#範圍內智慧型的等待。

self.driver.implicitly_wait()

post / session /:sessionid / timeouts / implicit_wait

設定驅動程式在搜尋元素時應等待的時間。當

單個元素搜尋,直到找到乙個元素或駕駛員應查詢頁面

的超時,以先到為準。搜尋多個元素時,驅動程式

應輪詢頁面,直到找到至少乙個元素或超時到期,此時

它應返回乙個空列表。

如果從未傳送此命令,則驅動程式應預設為0ms的隱式等待。

:sessionid- 將命令路由到的會話的id。

json引數:

ms-等待的時間量,以毫秒為單位。該值的下限為0。

參考資料:

#第三種  webdriverwait():同樣也是 webdirver 提供的方法。在設定時間內,預設每隔一段時間檢測一次當前。頁面元素是否存在,如果超過設定時間檢測不到則丟擲異常。

'''詳細格式如下:

webdriverwait(driver, timeout, poll_frequency=0.5, ignored_exceptions=none)

driver - webdriver 的驅動程式(ie, firefox, chrome 或遠端)

timeout - 最長超時時間,預設以秒為單位

poll_frequency - 休眠時間的間隔(步長)時間,預設為 0.5 秒

ignored_exceptions - 超時後的異常資訊,預設情況下拋 nosuchelementexception 異常。

webdriverwait()一般由 until()或 until_not()方法配合使用,下面是 until()和 until_not()方法的說明。

until(method, message=』』)

呼叫該方法提供的驅動程式作為乙個引數,直到返回值不為 false。

until_not(method, message=』』)

呼叫該方法提供的驅動程式作為乙個引數,直到返回值為 false。

lambda

lambda 提供了乙個執行時動態建立函式的方法。'''

from selenium.webdriver.support.ui import webdriverwait

element = webdriverwait(driver, 10).until(lambda x: x.find_element_by_id(「someid」))

until_not(lambda x: x.find_element_by_id(「someid」).is_displayed())

Appium筆記 三種等待

等待方法 import time 強制等待2s time.sleep 2 全域性等待10s self.driver.implicitly wait 10 from selenium.webdriver.support.ui import webdriverwait webdriverwait dri...

Python selenium 三種等待方式解讀

原文 1.有frame 2.沒有加等待時間 為什麼要加等待時間了,是因為 執行速度與瀏覽器載入速度不一樣,導致 執行完了瀏覽器還沒有載入完,出現異常情況。下面講解selenium的三種等待方式 1.強制等待,是最簡單粗暴的方法slepp xx 不管你瀏覽器是否載入完了,程式都得等待xx秒,xx秒一到...

Python selenium 三種等待方式

1.強制等待 time.sleep 2.顯式等待 from selenium.webdriver.support import expected conditions as ec from selenium.webdriver.support.ui import webdriverwait from...