Skip to main content

Additional Server Capabilities

info

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).

info

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. 

info

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.

OKAllowAccept

Supported in iOS only

ios.auto.dismiss.alerts

info

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:

DismissDon't allowCloseCancelNot 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