Settings API
Settings是appium引入的一个新概念。 它们目前不是Mobile JSON Wire协议或Webdriver规范的一部分。
Settings是用来指定appium server的工作方式。
Settings有以下特点: - 可变性,Settings在一个会话中是可以被修改的。 - 临时性,Settings只对当前会话生效,新建立的会话会被重置。 - 局限性,Settings只用来控制appium server,不能用于控制被测应用或设备。
以Android的ignoreUnimportantViews
为例。Android中可以设置ignoreUnimportantViews
用来忽略所有与当前视图无关的元素,这样可以让用例执行的更快。注意,当用户需要访问这些被忽略的元素时,需要禁用ignoreUnimportantViews
后并重新启用。
另外一个例子是Settings让appium忽略当前不可见的元素。
Settings通过下面的API实现:
POST /session/:sessionId/appium/settings
Settings使用键值对(name:value)的JSON格式,name为setting的名字,value是setting的取值。
{
settings: {
ignoreUnimportantViews : true
}
}
GET /session/:sessionId/appium/settings
以JSON格式返回当前所有配置。
{
ignoreUnimportantViews : true
}
注意,实际的命令因您的脚本所使用的语言而异; 请参阅具体的Appium客户端文档以获取更多信息。
支持的Settings
"ignoreUnimportantViews" - 布尔类型。设置为false时,Android设备不会忽略任何视图;被设置为true时,会使用setCompressedLayoutHeirarchy()
忽略标记了IMPORTANT_FOR_ACCESSIBILITY_NO或IMPORTANT_FOR_ACCESSIBILITY_AUTO(以及被系统认为不重要的)的视图,从而尽量让脚本变得简单或执行的更快。
Android UiAutomator Configurator
设置UiAutomator Configurator 的超时时间和延迟. 只支持Android API 18 及以上版本。
"actionAcknowledgmentTimeout" - Int类型,与setActionAcknowledgmentTimeout相同。被设置为负数时将取默认值(3 * 1000 毫秒)
"keyInjectionDelay" - Int类型,与setKeyInjectionDelay相同。被设置为负数时将取默认值(0 毫秒)
"scrollAcknowledgmentTimeout" - Int类型,与setScrollAcknowledgmentTimeout相同。被设置为负数时将取默认值(200 毫秒)
"waitForIdleTimeout" - Int类型,与setWaitForIdleTimeout相同。被设置为负数时将取默认值(10 * 1000 毫秒)
"waitForSelectorTimeout" - Int类型,与setWaitForSelectorTimeout相同。被设置为负数时将取默认值(10 * 1000 毫秒)