Additional Server Capabilities
Please note that this tool is classified as a Legacy tool. We recommend transitioning to our updated solutions to maintain optimal performance and security in your workflows. For more information on this matter, please reach out to technical support .
Appium Studio features additional capabilities that extend Appium by providing testers with functionality that is otherwise unavailable (in the Appium Server). These capabilities allow the tester to create more elaborate tests.
Testers can make use of these commands by providing them as parameters in Appium's dc.setCapability() method and adding "seetest:" before the value part.
Parameters
- Property: Property (See the supported properties below) preceded by "seetest:"
- Value: The value to be set
For example, if you wanted to define the size of the generated images in the report you could make use command: client.setProperty("report.image.width", "800")
dc.setCapability("seetest:report.image.width", "800") ;
Supported Properties:
PropertyValueFunctionNoteshybridClickEnable/disable or true/false (default mode = disable/false)When hybridClick is enabled, click method will be executed using javascript.
report.image.widthSize in pixels (default value: 500)Defines the size, in pixels, of the generated images in the report.
report.disabletrue/falseif true, the test results won't appear in the report
screen.latencyUnit in millisecondsSome commands, for instance, Click, result in two screenshots in a report: a pre-action shot, which is taken right before the command execution starts, and a post-action shot. The value of screen.latency is used in the calculation of the time when the latter screenshot is taken. Namely, Appium Studio holds on during screen.latency since the action of the current step is forwarded to a physical device and then grabs its post-action screenshot. Thus if you notice that the post-action screenshot is taken too early, you can tune the latency of its taking by updating the value of screen.latency. As a trade-off, however, this will slow down the execution of the test
screen.quality1-100 (percentages)To change the quality of the image received from the device.
screen.refreshGreater than 0 in millisecondsTo control the refresh rate time gap to get a new image from the device.
ignore.ocr.recommendationtrue/falseTo enable/disable OCR recognition.
Android .instrumentation.securitynone, smart, hard (default value: smart)
To disable the Android LayoutParams FLAG_SECURE.
- none - will not disable the security flag.
- smart - will disable the security flag when activity resumes.
- hard - will disable the security flag on the activity resume and in a repeated sequence (every few sec).
Supported in Androird only
on.device.xpathtrue/falseIf it is set to true, it causes any web command that is using XPath to be calculated on the device itself. This enables a faster response. As part of the properties shown in the object spy are derivative it will not work on the device. So, if the XPath contains one of the followings tags, it will not be executed on the device (even if the property is set to true):
@onScreen, @top, @css, @width, @height, @x, @y, @hidden, @text or @nodeName
assert.element.idletrue/ false. (default value: false)
This property is used to control SeeTest verification behavior regarding busy elements. When the property is set to true, SeeTest will fail a command if the element in question is found on screen but in a busy state. Otherwise, the verification will ignore its busy state.
Usage examples:
1. To identify a toast which generally is a busy element, use: assert.element.idle=false.
2. To click on an element, use: assert.element.idle=true (because clicks do not work on busy elements).
This property is available also as an 'app-property', which can be declared and set on/off in the app.properties file.
Supported in Android only
element.visibility.level
full/center/none/legacy_mode default value: legacy_mode.
This property is an app property used to define the desired visibility level of elements on the device's screen for the testing flow.
Following are the visibility levels supported:
full: fully contained; This mode defines the element visibility based on whether the element rectangle is fully contained within the screen rectangle.
center: center contained; This mode defines the element visibility based on whether the center of the element (click point) is visible on the screen
none: no visibility constraints: This mode does not verify element visibility on the screen once the element is found in Dump
legacy_mode: Maintains old legacy - the current default mode
For example:
Running isElementFound() on an element that is completely hidden by the devices navigation bar will retrieve the following based on each mode:
Full: false
center: false
none: true
Note: elementSwipe.partialAppearance property is deprecated and it is recommended to use element.visibility.level property instead.
chrome.load.timeoutinteger>=0 (time in milliseconds). Default value: 10,000 ms for local devices and 15000 ms for cloud devices.This property is a device property used to control the timeout of the operation on chrome.
For example:
1. when executing ' launch(chrome:...) ' command, the requested website tries to load on the current tab, this process requires first loading the last website opened on this tab and if the loading process got timed-out. Chrome will load the new URL in a new tab.
2. Under bad network conditions, chrome might exhibit a performance deterioration. This property allows you to adjust chrome operations timeout under different network conditions.
Supported in Android only
adbPortForwardselected port number/ -1To enable specifying which adb port number you wish to search a connected Android device from. If set to -1, it will forward to all adb ports.
Android .native .nonInstrumentedtrue/falseEnable the user to switch between working under-instrumented/non-instrumented mode during test execution.
Supported in Android only
ios.native .nonInstrumentedtrue/falseFor Native dump only. If set to true, it will take the non-instrumented dump.
Supported in iOS only
iosDevice .nonInstrumentedenable/disable (default value: enable)To switch between instrumented/non-instrumented modes while working with an iOS device.
Supported in iOS only
ios.elementsendtext.action.firetrue/ false (default value: false)When the user uses the ElementSendText command and the ios.elementsendtext.action.fire property is enabled, it will trigger the event that should have been triggered by the keyboard.
Supported in iOS only
ios.atomic .sendText true/falseWhen set to true, SendText command will ensure sending the text key by key, atomically .
Supported in iOS only
ios.non-instrumented.dump.escape.attributestrue/false (default value: false)
When set to true, it will escape properties (hidden, knownSuperClass) from the non-instrumented dump. Uses for big pages with a lot of elements.
This property is available also as an 'app-property', which can be declared and set on/off in the app.properties file.
Supported in iOS only
ios.non-instrumented.dump.parametersSee Failure to Get Dump.Define a specific dump parameter to limits the elements numbers
Supported in iOS only
xcelement.type.includetrue/false (default value: false)Starting from SeeTest Automation 10.3 the 'Class' property has changed in the non-instrumented dump. To go back to the older dump during runtime using this property with the value false.
Supported in iOS only
js.max.string.sizeinteger values > 0 (default value: 255)Set the maximum text attribute length in the object properties.
clicks.time.gapInteger values > 0 (default value: 0)
iOS: Milliseconds between clicks in case simulation of a triple click (or above) is desired. Set this property and make sure the number of clicks is 3 or above. This will simulate a fast repetitive click in the same spot (recommended values are 50 ms and up).
Default: 0.
Android:This property can also be used for clickCoordinate() command in Android
Android .instrumentation.camera true/ false or enable/disable. (default value: false)
This property enables you to support camera instrumentation on-the-fly. When set to true, the next time you use the install command with instrument=true, your application will be instrumented with the camera support.
This ability is intended especially for test automation on applications with the camera. For further information, please see SimulateCapture.
Note:
This property is available also as an 'app-property', which can be declared and set on/off in the app.properties file.
Supported in Android only
ios.auto.accept.alertstrue/false
If set to true, system alerts will be accepted automatically when they appear on the screen. The click will happen during the next command that will use XPath queries.
OK | Allow | Accept |
---|
Supported in iOS only
ios.auto.dismiss.alerts
Only works with iOS 9 and above.
true/false
If set to true, system alerts will be dismissed automatically when they appear on the screen. The click will happen during the next command that will use XPath queries.
The Dismiss options are:
Dismiss | Don't allow | Close | Cancel | Not now | "...Later" |
---|
Supported in iOS only
android.install.grant.permissions
related Android 6+
true/falseGrants the permissions your app requires on install. Defaults to false
Supported in Android only
attach.crash.log.to.report
true/falseSaves crash logs that were created on the device during the test to the report folder
Supported in iOS only
ios.dump.focus.process
process_name:<name> or
bundle_id: <bundleId> or
process_id:<pid>
Getting dump from specific process, identified by : process_name / bundle_id or process_id.
For example, getting dump from assistiveTouch:
ios.dump.focus.process=process_name:AssistiveTouchd
Supported in iOS only
ios.dump.non.instrumented.dump.include.attributes
attribute name
(currently only 'visible' attribute is supported).
Used only on iOS for getting dump non-instrumented included the attributes.
For example: ios.dump.non.instrumented.dump.include.attributes=visible
Supported in iOS only
battery.report.percentagetrue/false
change the presented data units for battery monitoring from the default unit which is mAh to a percentage
Supported in Android only
ios.keyboard.close.by.dumptrue/falseClose keyboard with simulated user action based on the keyboard in use
Supported in iOS only
location.service.gps
location.service.network
true/false
Toggle gps off by setting both properties to false.
Toggle gps on by using one of these properties to true:
- for gps with 'device only' mode: use 'location.service.gps=true'
'location.service.network=false' - for gps with 'battery saving' mode: use 'location.service.gps=false'
'location.service.network=true' - for gps with 'High accuracy' mode: use 'location.service.gps=true'
'location.service.network=true'
Supported in Android only
ios.element-send-text.use.xcautomationtrue/falseUse XCAutomation for elementSendText, by default is true, if set to false, then elementSendText operation rather then being atomically executing on the device will be executing in multiple steps.
Supported in iOS only
ios.dump.fetch.toptrue / false(default)Instead of calculating "top" property with the legacy heuristics, this property makes the "top" property being queried from the OS. Use this only if you have problems with the existing property, as it is a costly operation.
Supported in iOS only
ios.instrumentation.log.levelnone,fatal,error,warn,info,debug,allSets the desired log level to the iOS instrumentation.
Supported in iOS only
safari.webview.includetrue / false(default)Fetch the UI elements of safari webView.
Supported in iOS only
ios.element.top.bounds.contained.in.parent
true / false(default)
Sets top=false for elements that their rectangle bounds are not inside their parents bounds.
Supported in iOS only
ios.waiting.element.polling.interval
Integer values >= 0 (default value:0)
Used for stabilising click operations.
Sets the interval between polling the element location in milliseconds, waiting for the element to be in the same location.
Supported in iOS only
ios.11.use.old.monitoring.service
true / false(default)Used only for iOS 11 to choose the service which uses for monitoring CPU / Memory (the old service monitors only debug applications).
Supported in iOS only