記錄自己學習Appium+Python途中遇到的問題以及解決方法學海無涯苦作舟
問題描述
昨天看了下每日Android自動化定時任務的測試報告,出現瞭如下圖所示的錯誤
分析得知是因爲在測試過程中,有個控件沒找到,導致腳本執行中斷,退出App。但是在腳本中有個
tearDownClass(必須使用@classmethod裝飾器,所有test運行完後運行一次)裏面的內容是driver.quit(),所以當執行tearDownClass的時候,出現錯誤;
解決辦法
在tearDownClass()增加IF邏輯判斷,當存在APP的Activity還存在的時候,執行退出APP的操作driver.quit(),否則不執行任何操作,代碼如下
@classmethod
def tearDownClass(cls):
f = os.popen(r"adb shell dumpsys activity top | findstr ACTIVITY", "r") # 獲取當前界面的Activity
current_activity = f.read()
f.close()
print(current_activity) # cmd輸出結果
# 用in方法 判斷一個字符串是否包含某字符
apppackage_name = 'com.ximalaya.ting.android'
if apppackage_name in current_activity:
cls.driver.quit()
else:
pass