Appium自動化(14):Appium常用操作之app操作


APP操作方法:

appium支持對手機上的app進行管理和操作,有如下方法:

1、install_app(self,app_path,**options): 安裝app,app_path為安裝包路徑
2、remove_app(self,app_id,**options): 卸載app,app_id為app包名
3、is_app_installed(self,bundle_id): 檢查app是否有安裝bundle_id為app包名
4、launch_app(self): 啟動app,啟動desiredcapabilities配置的APP
5、close_app(self): 關閉app,關閉desiredcapabilities配置的APP
6、background_app(self,seconds): 后台運行app,seconds為運行時長
7、activate_app(self,app_id): 切換app,app_id為app包名
8、current_activity(self): 打印當前activity使用的時候不加()
9、start_activity(self,app_package,app_activity,**opts): 在當前應用中打開一個Activity,或者啟動一個新應用並打開一個Activity,app_package為要啟動的Activity的包名,app_activity要啟動的Activity名。
10、reset(self):重置應用,刪除應用相關數據操作

代碼示例:

舉例使用幾種方法進行的操作

import time
from appium.webdriver.webdriver import By
from appium import webdriver
des = {
    'automationName':'appium',
    'platformName':'Android',
    'platformVersion':'6.0.1',  # 填寫android虛擬機/真機的系統版本號
    'deviceName':'MuMu',      # 填寫安卓虛擬機/真機的設備名稱
    # 'appPackage':'com.sky.jisuanji',    # 填寫被測app包名
    # 'appActivity':'.JisuanjizixieActivity',    # 填寫被測app的入口
    'udid':'127.0.0.1:7555',    # 填寫通過命令行 adb devices 查看到的udid
    'noReset':True,               # 是否重置APP
    'unicodeKeyboard':True,       # 是否支持中文輸入
    'resetKeyboard':True,         # 是否支持重置鍵盤
    'newCommandTimeout':60        # 60秒沒發送新命令就斷開連接
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)
# 判斷如果 計算器 已經下載了則刪除
if driver.is_app_installed("com.sky.jisuanji"):
    driver.remove_app("com.sky.jisuanji")
    time.sleep(3)
# 下載 計算器app
driver.install_app("E:/apk/CalcTest.apk")
time.sleep(3)
# 啟動 計算器
driver.start_activity("com.sky.jisuanji",".JisuanjizixieActivity")
time.sleep(8)
# 做 8+9 的操作
driver.find_element(By.ID,'com.sky.jisuanji:id/btn8').click()
driver.find_element(By.ID,'com.sky.jisuanji:id/jia').click()
driver.find_element(By.ID,'com.sky.jisuanji:id/btn9').click()
driver.find_element(By.ID,'com.sky.jisuanji:id/denyu').click()
time.sleep(3)
# 置於后台5秒中
driver.background_app(5)
time.sleep(3)
# 切換到設置
driver.activate_app('com.android.settings')
time.sleep(3)
# 切換到計算器
driver.activate_app('com.sky.jisuanji')
time.sleep(3)
driver.close_app()  # current_activity\reset\launch_app 這四個方法只適合在des項配置中操作

 

針對 current_activity \ reset \ launch_app \ close_app 這四個方法只適合在des項配置中操作  做代碼演示

代碼示例:

import time
from appium import webdriver
des = {
    'automationName':'appium',
    'platformName':'Android',
    'platformVersion':'6.0.1',  # 填寫android虛擬機/真機的系統版本號
    'deviceName':'MuMu',      # 填寫安卓虛擬機/真機的設備名稱
    'appPackage':'com.sky.jisuanji',    # 填寫被測app包名
    'appActivity':'.JisuanjizixieActivity',    # 填寫被測app的入口
    'udid':'127.0.0.1:7555',    # 填寫通過命令行 adb devices 查看到的udid
    'noReset':True,               # 是否重置APP
    'unicodeKeyboard':True,       # 是否支持中文輸入
    'resetKeyboard':True,         # 是否支持重置鍵盤
    'newCommandTimeout':60        # 30秒沒發送新命令就斷開連接
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)
# 關閉app
time.sleep(3)
driver.close_app()
# 啟動desiredcapabilities配置的APP
time.sleep(3)
driver.launch_app()
# 重置app
time.sleep(3)
driver.reset()
# 打印當前的 activity
time.sleep(3)
print(driver.current_activity)

 


免責聲明!

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



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