Desired Capabilities
Desired capabilities 是一些发送给 Appium 服务器的键值对集合 (比如 map 或 hash),告诉服务器我们想要启动什么类型的自动化会话。也有各种可以在自动化运行时修改服务器行为的 capabilities。例如,我们可以把 platformName
capability 设置为 iOS
,告诉 Appium 我们想要 iOS 会话,而不是 Android 或者 Windows 会话。我们也可以设置 safariAllowPopups
capability 为 true
,确保我们在 Safari 自动化会话中可以使用 javascript 打开新窗口。
设置方法如:
class YY(unittest.TestCase): def setUp(self): desired_caps = { 'platformName': 'Android', 'deviceName': '611AKBPP22HR5', # adb devices查到的设备名 'platformVersion': '4.4.2', 'appPackage': 'com.duowan.mobile', # 被测App的包名 'appActivity': 'com.yy.mobile.ui.splash.SplashActivity',# 启动时的Activity # 'app':PATH('E:\yymobile_client-7.7.1.apk') } self.driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
常用参数如:
platformName:使用的手机操作系统,iOS
, Android
, 或者 FirefoxOS
deviceName:使用的手机或模拟器类型
app:本地绝对路径_或_远程 http URL 所指向的一个安装包,Appium 将其安装到合适的设备上。请注意,如果您指定了 appPackage
和 appActivity
参数,Android 则不需要此参数了
appPackage:运行的 Android 应用的包名
appActivity:Activity 的名字是指从你的包中所要启动的 Android acticity
appWaitActivity:用于等待启动的 Android Activity 名称
androidInstallTimeout:用于等待在设备中安装 apk 所花费的时间(以毫秒为单位)。默认值为 90000
unicodeKeyboard:使用 Unicode 输入法。 默认值为 false
resetKeyboard:在设定了 unicodeKeyboard
关键字的 Unicode 测试结束后,重置输入法到原有状态。如果单独使用,将会被忽略。默认值为 false
chromeOptions:允许对 ChromeDriver 传 chromeOptions 的参数。了解更多信息请查阅 chromeOptions
nativeWebScreenshot:在 web 的上下文(context),使用原生(native)的方法去截图,而不是用过代理的 ChromeDriver。默认值为 false
androidScreenshotPath:在设备中截图被保存的目录名。默认值为 /data/local/tmp
autoGrantPermissions:让Appium自动确定您的应用需要哪些权限,并在安装时将其授予应用。默认设置为 false
noReset:在当前 session 下不会重置应用的状态。默认值为 false,设置为true后,不需要每次运行用例都安装apk
例子:解决send_keys() 发送中文时,无法输入的问题:
设置 unicodeKeyboard=True,resetKeyboard=True
更多参数,请详细阅读官方说明 http://appium.io/docs/cn/writing-running-appium/caps/index.html