APP——自動化——python——判斷某個app是否安裝以及按裝


一、app已經按裝

# 計算器:     C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
#              mSurface=Surface(name=com.youba.calculate/com.youba.calculate.MainActivity)            #adb命令查看包名和啟動activity

#com.youba.calculate:id/btn_plus  +
#com.youba.calculate:id/btn_equal  =


#鳳凰網:   C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
#           mSurface=Surface(name=com.ifeng.news2/com.ifeng.news2.activity.IfengTabMainActivity)

from appium import webdriver
import  time

desired_caps = {
    'platformName': 'Android',             #待測試手機的系統
    'deviceName':'8DF6R17503000072',     #使用手機或模擬器的類型
    'platformVersion': '8.0.0',                         #待測手機系統版本
     "unicodeKeyboard":"true",   #支持中文輸入,會自動安裝unicode輸入法,默認是false
     "resetKeyboard":"true",    #如果設置了中文輸入為true,此設置為自動化退出后,重置輸入法到原來狀態
    #'app': 'C:\\Users\\del\\Desktop\\b\\jsq.apk',         #手機未按照待測app時,設置安裝路徑、包名、啟動activity
    'appPackage': 'com.youba.calculate',
    'appActivity': 'com.youba.calculate.MainActivity',
}


driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)


time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_one").click();     # 1+2=
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_plus").click();
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_two").click();
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_equal").click();
time.sleep(5)
print(driver.find_element_by_id("com.youba.calculate:id/tv_display").text);


print("#------------------------------------------------------------------------------------")
print("#------------------------------------------------------------------------------------")



print(driver.current_package)
print('-------------------------')
print(driver.current_activity)
print('-------------------------')
print(driver.capabilities)
print('-------------------------')
time.sleep(10);
driver.open_notifications()      #打開消息通知欄
time.sleep(10)
driver.press_keycode(4)      #按一下返回鍵,消息欄隱藏
time.sleep(10)

print("#------------------------------------------------------------------------------------")
print("#------------------------------------------------------------------------------------")

print(driver.is_app_installed("com.ifeng.news2"))          # 返回true,說明已經按裝了



driver.quit()

 

 

執行結果:

 

3
#------------------------------------------------------------------------------------
#------------------------------------------------------------------------------------
com.youba.calculate
-------------------------
.MainActivity
-------------------------
{'platform': 'LINUX', 'webStorageEnabled': False, 'takesScreenshot': True, 'javascriptEnabled': True, 'databaseEnabled': False, 'networkConnectionEnabled': True, 'locationContextEnabled': False, 'warnings': {}, 'desired': {'platformName': 'Android', 'deviceName': '8DF6R17503000072', 'platformVersion': '8.0.0', 'unicodeKeyboard': True, 'resetKeyboard': True, 'appPackage': 'com.youba.calculate', 'appActivity': 'com.youba.calculate.MainActivity'}, 'platformName': 'Android', 'deviceName': '8DF6R17503000072', 'platformVersion': '8.0.0', 'unicodeKeyboard': True, 'resetKeyboard': True, 'appPackage': 'com.youba.calculate', 'appActivity': 'com.youba.calculate.MainActivity', 'deviceUDID': '8DF6R17503000072', 'deviceApiLevel': 26, 'deviceScreenSize': '1440x2560', 'deviceScreenDensity': 560, 'deviceModel': 'EDI-AL10', 'deviceManufacturer': 'HUAWEI', 'pixelRatio': 3.5, 'statBarHeight': 84, 'viewportRect': {'left': 0, 'top': 84, 'width': 1440, 'height': 2344}}
-------------------------
#------------------------------------------------------------------------------------
#------------------------------------------------------------------------------------
True

 

 

 

 

============================================================================================

============================================================================================

 

 

 

 

 

二、app沒有安裝,則安裝

# 計算器:     C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
#              mSurface=Surface(name=com.youba.calculate/com.youba.calculate.MainActivity)            #adb命令查看包名和啟動activity

#com.youba.calculate:id/btn_plus  +
#com.youba.calculate:id/btn_equal  =


#鳳凰網:   C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
#           mSurface=Surface(name=com.ifeng.news2/com.ifeng.news2.activity.IfengTabMainActivity)

from appium import webdriver
import  time

desired_caps = {
    'platformName': 'Android',             #待測試手機的系統
    'deviceName':'8DF6R17503000072',     #使用手機或模擬器的類型
    'platformVersion': '8.0.0',                         #待測手機系統版本
     "unicodeKeyboard":"true",   #支持中文輸入,會自動安裝unicode輸入法,默認是false
     "resetKeyboard":"true",    #如果設置了中文輸入為true,此設置為自動化退出后,重置輸入法到原來狀態
    #'app': 'C:\\Users\\del\\Desktop\\b\\jsq.apk',         #手機未按照待測app時,設置安裝路徑、包名、啟動activity
    'appPackage': 'com.youba.calculate',
    'appActivity': 'com.youba.calculate.MainActivity',
}


driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)


time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_one").click();     # 1+2=
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_plus").click();
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_two").click();
time.sleep(5)
driver.find_element_by_id("com.youba.calculate:id/btn_equal").click();
time.sleep(5)
print(driver.find_element_by_id("com.youba.calculate:id/tv_display").text);


print("#------------------------------------------------------------------------------------")
print("#------------------------------------------------------------------------------------")



print(driver.current_package)
print('-------------------------')
print(driver.current_activity)
print('-------------------------')
print(driver.capabilities)
print('-------------------------')
time.sleep(10);
driver.open_notifications()      #打開消息通知欄
time.sleep(10)
driver.press_keycode(4)      #按一下返回鍵,消息欄隱藏
time.sleep(10)

print("#------------------------------------------------------------------------------------")
print("#------------------------------------------------------------------------------------")

print(driver.is_app_installed("com.ifeng.news2"))          # 返回false,說明沒有安裝



driver.install_app("C:\\Users\\del\\Desktop\\b\\ifeng.apk")                                #按裝app

time.sleep(30)
driver.press_keycode(3)                 #按鍵 home鍵
driver.quit()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM