1、Appium Desired Capabilities
设备启动(手机/模拟器)
- 方法一:手机已安装APP,利用appPackage和appActivity进行启动
desired_caps = {}
desired_caps['platformName'] = 'Android' # 设备系统
desired_caps['platformVersion'] = '6.0.1' # 设备系统版本
desired_caps['deviceName'] = '127.0.0.1:62001' # 设备名称
desired_caps['appPackage'] = 'tv.danmaku.bili' # 测试app包名
desired_caps['appActivity'] = '启动项' # 测试启动项
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
- 方二:手机未安装APP,基于 Desired Capabilities参数进行自动安装
使用desired_caps[‘app’]进行安装,有了这个app参数就不需要appPackage和appActivity这两个参数
from appium import webdriver
import os
apk_path = os.path.abspath(os.path.join(os.path.dirname(__file__),"..")) #获取当前项目的根路径
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.4'
desired_caps['deviceName'] = 'Android Emulator' #启动哪种设备,真机还是模拟器
desired_caps['app'] = apk_path+"\\apps\\ContactManager.apk"
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
备注:文件绝对路径的相关介绍
import os
print(os.path.abspath('test.py')) #获取当前文件下的绝对路径:/Users/mayanyun/PycharmProjects/AppUITest/test.py
apk_path=os.path.abspath(os.path.join(os.path.dirname(__file__),"..")) #获取当前项目的根路径:/Users/mayanyun/PycharmProjects
print(apk_path+"\\apps\\ContactManager.apk") #链接路径:/Users/mayanyun/PycharmProjects\apps\ContactManager.apk
-
Desired Capabilities其他参数
1. noReset,FullReset:默认手机每次启动都是重置至初始状态,设置noReset=True可以不清除缓存 2. autoGrantPermissions=true 默认授权 3. resetKeyboard = True 允许Unicode字符输入 ,用于输入中文,默认为false 4. resetKeyboard=true 设置键盘为初始状态,默认为false,搭配resetKeyboard使用,避免单独使用
相关文档:
Desired Capabilities详细介绍
2、API进阶
- 向模拟器内发短信,打电话
def test_gsm_call(self):
self.driver.send_sms("13167033880","Hello from python") #仅适用于模拟器
self.driver.make_gsm_call("13167033880", GsmCallActions.CALL) #仅适用于模拟器
备注:测试了下Android自带的模拟器,设备名emulator-5554可以运行;
genymotion启动的模拟器设备名127.0.0.1:62001会报错:
gsmCall method is only available for emulators