I have been writing Selenium Browser automated tests and now I would like to begin writing mobile browser automated tests for Android and IPhone. I am deciding between the Appium framework and the Selenium AndroidDriver and IPhoneDriver. Does anyone have experience in these frameworks and knows which framework is easier to jump into from Selenium Browser automation? Also which framework looks to be the most active, supported, and likely to be a good choice for the future development?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
The main differences between Appium and AndroidDriver/iPhoneDriver are architectural.
The AndroidDriver/iPhoneDriver work the same basic way - they are applications you launch on the phone that create a webview that you can remote control with selenium. The limitations to this approach are:
Appium works by wrapping the first-party automation frameworks (UIAutomator for iPhone and UI Automation/Instrumentation for Android). The major advantages, in addition to not suffering the problems above, are:
Finally, iPhoneDriver is officially deprecated, so don't expect any enhancements or major changes to that app in the future. Appium is updated regularly, and will likely remain compatible with new versions of the operating systems.
If you've written selenium tests for desktop browsers, you won't have too much trouble with Appium. The main 'gotcha' will be getting set up - I would recommend jumping on #appium on IRC or emailing the appium-discuss mailing list, where friendly folks are happy to help. The #1 advantage of Appium is the amazing community.
I would suggest Appium as it is being used by the popular test lab Sauce Labs so it looks like it would be more active and get more support down the line. https://saucelabs.com/mobile
I have used a lot of frameworks, and in my personal experience appium is easier, simpler, stronger than the rest of frameworks. I have tried with calabash, appium, ranorex. Every week appium has updates and bug fixes. And personally the python binding is a blessing.