Appium+Python 腳本運行報錯: A session is either terminated or not started

記錄自己學習Appium+Python途中遇到的問題以及解決方法學海無涯苦作舟

問題描述
昨天看了下每日Android自動化定時任務的測試報告,出現瞭如下圖所示的錯誤
A session is either terminated or not started
分析得知是因爲在測試過程中,有個控件沒找到,導致腳本執行中斷,退出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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章