Quamotion WebDriver provides two ways to automate apps running on iOS and Android devices: App Automation and Device Automation.
.ipafile) is modified, you need to have access to the original
.ipafile, and the app bundle needs to be resigned. Some applications may include anti-tamper protection which will detect app resigning and block the app from launching.
For this reason, we always recommend you try Device Automation first, and only switch to App Automation when required.
On iOS, App Automation and Device Automation boil down to these two options:
Apps which contain custom controls, must ensure that these custom controls respect the Apple Accessibility Guidelines. Custom controls which fail to meet these guidelines,
will be recognized as
XCUIElementOther and very little information about these controls may be available to test automation scripts.
To quote the Accessibility Programming Guide for iOS:
If your application displays a custom view that contains other elements with which users interact, you need to make the contained elements separately accessible. At the same time, you need to make sure that the container view itself is not accessible. The reason is that users interact with the contents of the container, not with the container itself.
We generally recommend you use Device Automation on iOS, as there are a couple of limitations related to app automation:
.ipafile. This means app automation does not work:
.ipaof the app, but the scenario includes any of these actions, app automation will not work properly:
In other words, in very specific corner cases (like apps which use custom controls, where the developers did not respect the Apple Guidelines) app automation may have an edge, these advantages are usually offset by the many limitations that app automation comes with.