Appium desired capabilities for iOS

In our previous post, we saw Appium desired capabilities specific to Android. Here we have listed all the desired capabilities for iOS. Most of them are optional capabilities, but these will come handy when you are writing full blown test automation for iOS.

Appium desired capabilities - iOS Only

Capability Description Values
calendarFormat (Sim-only) Calendar format to set for the iOS Simulator e.g. gregorian
bundleId Bundle ID of the app under test. Useful for starting an app on a real device or for using other caps which require the bundle ID during test startup. To run a test on a real device using the bundle ID, you may omit the 'app' capability, but you must provide 'udid'. e.g. io.appium.TestApp
udid Unique device identifier of the connected physical device e.g. 1ae203187fc012g
launchTimeout Amount of time in ms to wait for instruments before assuming it hung and failing the session e.g. 20000
locationServicesEnabled (Sim-only) Force location services to be either on or off. Default is to keep current sim setting. true or false
locationServicesAuthorized (Sim-only) Set location services to be authorized or not authorized for app via plist, so that location services alert doesn't pop up. Default is to keep current sim setting. Note that if you use this setting you MUST also use the bundleId capability to send in your app's bundle ID. true or false
autoAcceptAlerts Accept iOS privacy access permission alerts (e.g., location, contacts, photos) automatically if they pop up. Default is false. true or false
autoDismissAlerts Dismiss iOS privacy access permission alerts (e.g., location, contacts, photos) automatically if they pop up. Default is false. true or false
nativeInstrumentsLib Use native intruments lib (ie disable instruments-without-delay). true or false
nativeWebTap (Sim-only) Enable "real", non-javascript-based web taps in Safari. Default: false. Warning: depending on viewport size/ratio this might not accurately tap an element true or false
safariInitialUrl (Sim-only) (>= 8.1) Initial safari url, default is a local welcome page e.g.
safariAllowPopups (Sim-only) Allow javascript to open new windows in Safari. Default keeps current sim setting true or false
safariIgnoreFraudWarning (Sim-only) Prevent Safari from showing a fraudulent website warning. Default keeps current sim setting. true or false
safariOpenLinksInBackground (Sim-only) Whether Safari should allow links to open in new windows. Default keeps current sim setting. true or false
keepKeyChains (Sim-only) Whether to keep keychains (Library/Keychains) when appium session is started/finished true or false
localizableStringsDir Where to look for localizable strings. Default en.lproj en.lproj
processArguments Arguments to pass to the AUT using instruments e.g., -myflag
interKeyDelay The delay, in ms, between keystrokes sent to an element when typing. e.g., 100
showIOSLog Whether to show any logs captured from a device in the appium logs. Default false true or false
sendKeyStrategy strategy to use to type test into a test field. Simulator default: oneByOne. Real device default: grouped oneByOne, grouped or setValue
screenshotWaitTimeout Max timeout in sec to wait for a screenshot to be generated. default: 10 e.g., 5
waitForAppScript The ios automation script used to determined if the app has been launched, by default the system wait for the page source not to be empty. The result must be a boolean e.g. true;, target.elements().length > 0;, $.delay(5000); true;
webviewConnectRetries Number of times to send connection message to remote debugger, to get webview. Default: 8 e.g., 12
Credits :

This is it about Desired capabilities for iOS. In our coming posts, we will continue our journey with Appium.

If you have any suggestions, kindly let us know. We would like to hear from you.

Don’t forget to share and comment, if you like the post