Testing mobile web applications on iOS using Appium
Appium drives automation using a native automation framework and provides an API based on Selenium's WebDriver JSON wire protocol. To automate an iOS application, it uses the UI Automation feature offered as part of Apple Instruments.
Appium works as an HTTP server and receives the commands from test scripts over the JSON wire protocol. Appium sends these commands to Apple Instruments so that these can be executed on the app that is launched in a simulator or real device. While doing so, Appium translates the JSON commands into UI Automation JavaScript commands that are understood by the Instruments. The Instruments take care of launching and closing the app in the simulator or device. This process is shown in the following diagram:
When a command is executed against the app on the simulator or device, the target app sends the response back to the Instruments, which then send it back to Appium in the JavaScript response format. Appium...