一、測驗場景
在做UI自動化測驗時,經常會遇到測驗場景需要等很久才能繼續下一步,或者測驗狀態需要等很久才能有結果,這時需要用到行程、執行緒等python的高級用法來處理,但此時編程水平有限時,只能暫時采用等待狀態變化的辦法,再進行下一步自動化測驗,等有更好的方法在更新,
有路過的同仁知道更好的方法,請不吝賜教!
1、以手機端酒店訂單自動取消的場景為例(10分鐘倒計時結束后自動取消):

二、測驗程序
通常的做法是在當前頁面等待10分鐘,然后重繪頁面獲取訂單狀態,這種方法直接粗暴,如下面的方式:
def test_autocancel_hotel( driver):
"""酒店訂單未支付時,10分鐘后自動取消訂單"""
# -------------------測驗步驟 -------------------
# 在訂單詳情頁直接等待10分鐘
time.sleep(605)
# 重繪頁面
driver.refresh()
time.sleep(3)
driver.find_element(By.XPATH, "//div[text()='已取消']")
這種強制等待10分鐘的方式不可行,因為appium在等待超過一定時間,沒有接收到操作請求時會關閉測驗的App,
只能改成過一段時間去重繪頁面,然后獲取訂單狀態,雖然能解決問題,但感覺不是最好的方法,如下:
def test_autocancel_hotel(driver):
"""酒店訂單未支付時,10分鐘后自動取消訂單"""
# -------------------測驗步驟 -------------------
# 在訂單詳情頁等待10分鐘,訂單自動取消
used_time = 0
timeout = 25
while used_time < timeout:
time.sleep(28)
# 重繪頁面
driver.refresh()
time.sleep(3)
try:
driver.find_element(By.XPATH, "//div[text()='已取消']")
break
except:
used_time += 1
有路過的大佬知道更好的方式,請不吝賜教!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296097.html
標籤:其他
