Settings
Settings are a new concept introduced by appium. They are currently not a part of the Mobile JSON Wire Protocol, or the Webdriver spec.
Settings are a way to specify the behavior of the appium server.
Settings are: - Mutable, they can be changed during a session - Only relevant during the session they are applied. They are reset for each new session. - Control the way the appium server behaves during test automation. They do not apply to controlling the app or device under test.
An example of a setting would be ignoreUnimportantViews
for Android. Android can be set to ignore elements in the View Hierarchy which it deems irrelevant. Setting this can cause tests to run faster. A user who wants to access the ignored elements however, would want to disable ignoreUnimportantViews
, and reenable it afterwards.
Another example of a use-case for settings would be telling appium to ignore elements which are not visible.
Settings are implemented via the following API endpoints:
POST /session/:sessionId/appium/settings
Expects a JSON hash of settings, where keys correspond to setting names, and values to the value of the setting.
{
settings: {
ignoreUnimportantViews : true
}
}
GET /session/:sessionId/appium/settings
Returns a JSON hash of all the currently specified settings.
{
ignoreUnimportantViews : true
}
Note that the actual commands you would use in your test script differ based on the language; see the specific Appium client documention for more information.
Supported Settings
Name | Description | Values |
---|---|---|
ignoreUnimportantViews |
Boolean which sets whether Android devices should use setCompressedLayoutHeirarchy() which ignores all views which are marked IMPORTANT_FOR_ACCESSIBILITY_NO or IMPORTANT_FOR_ACCESSIBILITY_AUTO (and have been deemed not important by the system), in an attempt to make things less confusing or faster. false by default. |
false or true |
allowInvisibleElements |
For UiAutomator2 Driver. Boolean which set whether Android device should show all elements, visible and invisible. false by default. |
false or true |
Android UiAutomator Configurator
sets UiAutomator Configurator timeouts and delays in Android devices. only works in Android API 18 and above.
"actionAcknowledgmentTimeout" - Int which is the same as setActionAcknowledgmentTimeout. If a negative value is given, it would set to default(3 * 1000 milliseconds)
"keyInjectionDelay" - Int which is the same as setKeyInjectionDelay. If a negative value is given, it would set to default(0 milliseconds)
"scrollAcknowledgmentTimeout" - Int which is the same as setScrollAcknowledgmentTimeout. If a negative value is given, it would set to default(200 milliseconds)
"waitForIdleTimeout" - Int which is the same as setWaitForIdleTimeout. If a negative value is given, it would set to default(10 * 1000 milliseconds)
"waitForSelectorTimeout" - Int which is the same as setWaitForSelectorTimeout. If a negative value is given, it would set to default(10 * 1000 milliseconds)