# Awesome Appium [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Build Status](https://travis-ci.org/SrinivasanTarget/awesome-appium.svg?branch=master)](https://travis-ci.org/SrinivasanTarget/awesome-appium) [](http://appium.io) > A curated list of delightful [Appium](http://appium.io/) [resources](#contents). Feel free to add links via PRs and file issues to start discussions. Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing. ## Contents - [Server](#server) - [Clients](#clients) - [Inspectors](#inspectors) - [Tutorials](#tutorials) - [Appium Pro](#become-an-appium-pro) - [Blogs](#blogs) - [Workshops](#workshops) - [Cloud and Docker Solutions](#cloud-and-docker-solutions) - [Git Books](#git-books) - [Test Frameworks](#test-frameworks) - [Community](#community) - [Tips](#tips) ## Server - [Appium](https://github.com/appium/appium/blob/master/docs/en/about-appium/intro.md) - Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web and desktop apps, tested on simulators (iOS), emulators (Android), and real devices (iOS, Android, Windows, Mac). ## Clients - [Ruby](https://github.com/appium/ruby_lib) - [Python](https://github.com/appium/python-client) - [Java](https://github.com/appium/java-client) - [JavaScript](http://webdriver.io/) - [Objective C](https://github.com/appium/selenium-objective-c) - [PHP](https://github.com/appium/php-client) - [C# (.NET)](https://github.com/appium/appium-dotnet-driver) - [RobotFramework](https://github.com/jollychang/robotframework-appiumlibrary) ## Inspectors - [Appium Desktop](https://github.com/appium/appium-desktop) - Appium Server and Inspector in Desktop GUIs for Mac, Windows, and Linux. - [WebDriverAgent Inspector](https://github.com/facebook/WebDriverAgent/wiki/Starting-WebDriverAgent) - A WebDriver server for iOS that runs inside the Simulator. - [Selendroid Inspector](http://selendroid.io/inspector.html) - The web app which is embedded inside your selendroid test server. - [Appium iOS Inspector](https://github.com/mykola-mokhnach/Appium-iOS-Inspector) - The tool for iOS elements location based on the original source of Selendroid Inspector. - [app-inspector](https://github.com/macacajs/app-inspector) - Macacajs App Inspector. ## Become an Appium Pro - [Seeding the iOS simulator with test photos](https://appiumpro.com/editions/1) - [Seeding an Android device with test photos](https://appiumpro.com/editions/2) - [Running arbitrary ADB commands via Appium](https://appiumpro.com/editions/3) - [Using Appium for Testing Mobile Web Apps](https://appiumpro.com/editions/4) - [Performance Testing of Android Apps](https://appiumpro.com/editions/5) - [Testing iOS App Upgrades](https://appiumpro.com/editions/6) - [Speeding Up Tests With Deep Links](https://appiumpro.com/editions/7) - [How to Find Elements in iOS (Not) By XPath](https://appiumpro.com/editions/8) - [Testing Android App Upgrades](https://appiumpro.com/editions/9) - [Anatomy of Logging in Appium](https://appiumpro.com/editions/10) - [Simulating SMS Messages on Android](https://appiumpro.com/editions/11) - [Capturing Performance Data for Native iOS Apps](https://appiumpro.com/editions/12) - [Switching Between iOS Apps During a Test](https://appiumpro.com/editions/13) - [How to Automate a Pop Rock Band](https://appiumpro.com/editions/14) - [Testing iOS Push Notifications](https://appiumpro.com/editions/15) - [Automating the Clipboard on iOS and Android](https://appiumpro.com/editions/16) - [Automating Cross-Platform Hybrid Apps](https://appiumpro.com/editions/17) - [Using Espresso With Appium](https://appiumpro.com/editions/18) - [Making Your Appium Tests Fast and Reliable, Part 1: Test Flakiness](https://appiumpro.com/editions/19) - [Making Your Appium Tests Fast and Reliable, Part 2: Finding Elements](https://appiumpro.com/editions/20) - [Making Your Appium Tests Fast and Reliable, Part 3: Waiting for App States](https://appiumpro.com/editions/21) - [Making Your Appium Tests Fast and Reliable, Part 4: Dealing With Unfindable Elements](https://appiumpro.com/editions/22) - [Making Your Appium Tests Fast and Reliable, Part 5: Setting Up App State](https://appiumpro.com/editions/23) - [Making Your Appium Tests Fast and Reliable, Part 6: Tuning Your Capabilities](https://appiumpro.com/editions/24) - [Making Your Appium Tests Fast and Reliable, Part 7: Disabling Animations](https://appiumpro.com/editions/25) - [Making Your Appium Tests Fast and Reliable, Part 8: Mocking External Services](https://appiumpro.com/editions/26) - [Making Your Appium Tests Fast and Reliable, Part 9: When Things Go Wrong](https://appiumpro.com/editions/27) - [Running Multiple Appium Tests in Parallel](https://appiumpro.com/editions/28) - [Automating Complex Gestures with the W3C Actions API](https://appiumpro.com/editions/29) - [iOS-Specific Touch Action Methods](https://appiumpro.com/editions/30) - [Automating Custom Alert Buttons on iOS](https://appiumpro.com/editions/31) - [Finding Elements By Image, Part 1](https://appiumpro.com/editions/32) - [Finding Elements By Image, Part 2](https://appiumpro.com/editions/33) - [Simulating Hardware Keys And Key Events On Android](https://appiumpro.com/editions/34) - [Writing XPath Queries That Work](https://appiumpro.com/editions/35) - [Using The 'nativeWebTap' Capability](https://appiumpro.com/editions/36) - [Capturing Browser Errors and Logs in iOS Web/Hybrid Apps](https://appiumpro.com/editions/37) - [Capturing Browser Errors and Logs in Android Web/Hybrid Apps](https://appiumpro.com/editions/38) - [Early-Stage AI for Appium Test Automation](https://appiumpro.com/editions/39) - [How To Test On Real iOS Devices With Appium, Part 1](https://appiumpro.com/editions/40) - [How To Test Real iOS Devices With Appium, Part 2](https://appiumpro.com/editions/41) - [Simulating Incoming Phone Calls On Android](https://appiumpro.com/editions/42) - [How To Automatically Grant iOS App Permissions Using Appium](https://appiumpro.com/editions/43) - [Working With Web Components (Shadow DOM)](https://appiumpro.com/editions/44) - [How to Automate Siri Voice Commands Using Appium](https://appiumpro.com/editions/45) - [Sending Arbitrary Keystrokes With The Actions API](https://appiumpro.com/editions/46) - [Running Appium From Source (Or The Latest Beta)](https://appiumpro.com/editions/47) - [How To Flash Elements On Screen While Debugging Appium Tests](https://appiumpro.com/editions/48) - [How To Spread Some Holiday Cheer Using Appium](https://appiumpro.com/editions/49) - [Special Capabilities for Speeding up Android Test Initialization](https://appiumpro.com/editions/50) - [Calling Methods Inside Your App From Appium](https://appiumpro.com/editions/51) - [Automating Mac Apps with Appium](https://appiumpro.com/editions/52) - [Accessing Android Logcat Logs with Appium](https://appiumpro.com/editions/53) - [Using Appium With Selenium Grid](https://appiumpro.com/editions/54) - [Using Mobile Execution Commands to Continuously Stream Device Logs with Appium](https://appiumpro.com/editions/55) - [What Appium Users Need to Know about Android Activities and Intents](https://appiumpro.com/editions/56) - [How to Determine Element Locators For Mobile Web and Hybrid Apps](https://appiumpro.com/editions/57) - [How to Test on Headless Emulators and Simulators with Appium](https://appiumpro.com/editions/58) - [How to Automate Picker Wheel Controls](https://appiumpro.com/editions/59) - [How to Pick the Right Locator Strategy](https://appiumpro.com/editions/60) - [How to Accurately Select Webviews Using the fullContextList Capability](https://appiumpro.com/editions/61) - [Capturing iOS Simulator Network Traffic with Appium](https://appiumpro.com/editions/62) - [Capturing Android Emulator Network Traffic with Appium](https://appiumpro.com/editions/63) - [Validating Android Toast Messages](https://appiumpro.com/editions/64) - [Capturing Network Traffic in Java with Appium](https://appiumpro.com/editions/65) - [Automating System Apps with Appium](https://appiumpro.com/editions/66) - [Generating Touch Gestures to Zoom In and Out on Google Maps](https://appiumpro.com/editions/67) - [Automating Physical Buttons on iOS Devices](https://appiumpro.com/editions/68) - [Capturing Audio Output During Testing: Part 1](https://appiumpro.com/editions/69) - [Capturing Audio Output During Testing: Part 2](https://appiumpro.com/editions/70) - [Starting an Appium Server Programmatically Using AppiumServiceBuilder](https://appiumpro.com/editions/71) - [Simulating Slow Internet Connections on Android Emulators with Appium](https://appiumpro.com/editions/72) - [Working with Multile Webviews in Android Hybrid Apps](https://appiumpro.com/editions/73) - [Automating Custom IoT Devices With Appium, Part 1](https://appiumpro.com/editions/74) - [Automating Custom IoT Devices With Appium, Part 2](https://appiumpro.com/editions/75) - [Testing React Native Apps with Appium](https://appiumpro.com/editions/76) - [Optimizing WebDriverAgent Startup Performance](https://appiumpro.com/editions/77) - [Attaching Appium Clients to Existing Sessions](https://appiumpro.com/editions/78) - [Converting Java Tests to Kotlin](https://appiumpro.com/editions/79) - [Testing iOS Face ID with Appium](https://appiumpro.com/editions/80) - [Testing Windows Desktop Apps With Appium](https://appiumpro.com/editions/81) - [Streaming Video from iOS Devices](https://appiumpro.com/editions/82) - [Speeding Up Android Screenshots With MJPEG Servers](https://appiumpro.com/editions/83) - [Reliably Opening Deep Links Across Platforms and Devices](https://appiumpro.com/editions/84) - [Batching Appium Commands Using Execute Driver Script to Speed Up Tests](https://appiumpro.com/editions/85) - [Connecting Directly to Appium Hosts in Distributed Environments](https://appiumpro.com/editions/86) - [Working With Android 10](https://appiumpro.com/editions/87) - [Saving Test Data To Make Debugging Easier Java](https://appiumpro.com/editions/88) - [Understanding Appium Drivers (And How To Choose Which One To Use)](https://appiumpro.com/editions/89) - [Optimizing Image Element Thresholds](https://appiumpro.com/editions/90) - [Getting Started With Appium For Android On Windows](https://appiumpro.com/editions/91) - [Using AI-based Object Detection For Finding Elements](https://appiumpro.com/editions/92) - [Managing Chromedriver for Android Chrome and Webview Testing](https://appiumpro.com/editions/93) - [Using the Appium Events API](https://appiumpro.com/editions/94) - [The 'Android Data Matcher' Locator Strategy](https://appiumpro.com/editions/95) - [Working With Cookies](https://appiumpro.com/editions/96) - [Capturing App Launch Metrics On Android](https://appiumpro.com/editions/97) - [Visual Testing With Appium, Part 1](https://appiumpro.com/editions/98) - [Visual Testing With Appium, Part 2](https://appiumpro.com/editions/99) - [Visual Testing With Appium, Part 3](https://appiumpro.com/editions/100) - [AI for Appium--and Selenium!](https://appiumpro.com/editions/101) - [Mobile App Performance Testing](https://appiumpro.com/editions/102) - [Free Tools For Mobile App Performance Testing With Appium](https://appiumpro.com/editions/103) - [Simulating Different Network Conditions For Virtual Devices](https://appiumpro.com/editions/104) - [Paid Tools And Services For Mobile App Performance Testing](https://appiumpro.com/editions/105) ## Tutorials - [TOOLSQA](http://toolsqa.com/mobile-automation/appium/appium-tutorial/) - Appium tutorial for beginners (Android & iOS). - [GURU99](http://www.guru99.com/introduction-to-appium.html) - Appium tutorial for beginners. - [QTPSELENIUM](http://qtpselenium.com/home/course/training/mobile-automation-appium-tutorial) - Appium tutorials. - [Testing Diaries](http://www.testingdiaries.com/appium-tutorial/) - Appium Tutorial for Complete Beginners. - [Appium Bootcamp](https://saucelabs.com/resources/articles/appium-bootcamp-chapter-1) - Appium Bootcamp by Sauce. - [Appium Mobile Grid Setup](http://www.slideshare.net/justinison75/mobile-selenium-grid-setup) - The Mobile Grid – Getting Started for Android & iOS. - [Selenium Camp 2016](http://www.slideshare.net/justinison75/selenium-camp-2016) - Selenium Camp 2016. ## Blogs - [All about Appium Desired Capabilities](https://caps.cloudgrey.io/) - All about Appium's desired capabilities. - [Appium Architecture & Appium Desktop](https://www.zaizi.com/blog/appium-mobile-apps-automation-tool) - Appium Architecture, settings, etc (Updated) - [Appium Architecture](http://www.3pillarglobal.com/insights/appium-a-cross-browser-mobile-automation-tool) - Architecture of Appium. - [All about Appium](https://en.wordpress.com/tag/appium/) - All about Appium in Wordpress. - [Appium with Image Recognition](https://medium.com/@SimonKaz/appium-with-image-recognition-17a92abaa23d#.x19ffxwbk) - Appium with Image Recognition - Simon Kaz. - [Automate Android Actions using Appium](http://testingalert.com/automate-android-actions-using-appium/) - Automate Android Actions using Appium - kkashyap1707. - [Network Connection in Appium](https://medium.com/@eliasnogueira/how-to-deal-with-network-connection-in-appium-4-0-0-2134021fac25#.z5dfdv2jg) - How to deal with Network Connection from Appium 4.0.0 - Elias Nogueira. - [How to change language in Appium](https://medium.com/@eliasnogueira/appium-tips-changing-the-app-language-f0a1762dd927#.68mvqisri) - Appium Tips — Changing the app Language - Elias Nogueira. - [Automated UI testing of a UWP app using Appium](https://medium.com/@yostane/automated-ui-testing-of-a-uwp-app-using-appium-dc10d8df6631#.3efp60w1j) - Windows Application driver makes UWP Apps compatible using Appium - Yassine benabbas. - [Context Switching in Appium](https://medium.com/@kevinmarkvi/switching-to-a-dynamically-named-context-handle-with-appium-and-java-c78d2b972eb6#.2ylda6ul6) Switching to a Dynamically Named Context Handle with Appium and Java - Kevin Berg. - [A Robot Should Be Running Your Appium Tests](https://medium.com/devs-foodit/iphone-automation-with-a-one-fingered-robot-a2936c840285#.l37adndb3) - How to run Appium Tests using Robots. - Dan Cuellar. - [Appium Tests on Buddybuild](https://medium.com/@stipe.kolovrat/appium-cucumber-tests-up-running-on-buddybuild-8955a88ab589#.wsyazko3g) - Automates building, deploying and gathering feedback for mobile apps - Stipe Kolovrat. - [Android setup Linux](https://www.smashingmagazine.com/2016/04/from-zero-to-appium-guide-configuring-appium-android/) - From Zero To Appium: A How-To Guide For Configuring Appium With Android - [Useful Appium Series] (http://bitbar.com/tag/appium/) - Appium Tip Series - [Inspect iOS app's with Appium 1.6] (https://medium.com/@chenchaoyi/the-options-of-inspecting-ios-10-app-with-appium-1-6-534ba166b958#.ezq1q0iuo) - The options of inspecting iOS 10 app with Appium 1.6 - [GraphWalker](http://graphwalker.github.io/appium-example/) - GraphWalker is a open source Model-based testing tool for test automation. It's designed to make it easy to design your tests using graphs - [Appium + Mobile Game Testing](http://bitbar.com/mobile-game-testing-part-2-ui-and-functionality-image-recognition/) - MOBILE GAME TESTING – PART #2: UI AND FUNCTIONALITY + IMAGE RECOGNITION - [WinAppDriver](http://www.hanselman.com/blog/WinAppDriverTestAnyAppWithAppiumsSeleniumlikeTestsOnWindows.aspx) - WinAppDriver - Test any app with Appium's Selenium-like tests on Windows - [IMAGE RECOGNITION WITH APPIUM](http://bitbar.com/appium-tip-27-using-appium-for-mobile-game-testing/) - USING APPIUM FOR MOBILE GAME TESTING - [Uncover invisible changes in automated tests](https://sourcediving.com/how-to-uncover-invisible-changes-in-automated-tests-b6a5dbff564e) - By KazuCocoa - [Adding AI to Appium](https://medium.com/testdotai/adding-ai-to-appium-f8db38ea4fac) - By test.ai ## Workshops - [Appium Workshop Selnium Conf 2016](https://github.com/isonic1/appium-workshop) - Repo for Appium Workshop at the 2016 Selenium Conference - Justin Ison. ## Cloud and Docker Solutions - [Appium Tests in AWS Device Farm](https://github.com/awslabs/aws-device-farm-appium-tests-for-sample-app) - Sample Appium tests runs on AWS Device Farm. - [Appium Tests in OpenSTF Device Farm](https://github.com/openstf/stf-appium-example) - Sample Appium tests runs on STF Device Farm. - [Official Appium Docker Images](https://github.com/appium/appium-docker-android) - DockerFile for Appium Android Real Devices. - [Appium Docker Images](https://github.com/butomo1989/docker-android) - DockerFile for Appium Android. - [Appium Docker File](https://github.com/aluedeke/appium-android) - DockerFile for Appium Android. - [Appium Docker File](https://github.com/softsam/docker-appium) - DockerFile for Appium Android. - [TestingBot](https://testingbot.com) - Cloud based Device Farm, run Appium tests on physical Android and iOS devices. ## Git Books - [Appium Essentials](https://www.packtpub.com/application-development/appium-essentials/?utm_source=POD&utm_medium=referral&utm_campaign=1784392480) - Explore mobile automation with Appium and discover new ways to test native, web, and hybrid applications - Manoj Hans. - [Appium for Android](https://www.gitbook.com/book/nishantverma/appium-for-android) - A quick reference book on how to use Appium for automating Android Application using Java - Nishant Verma. ## Test Frameworks - [Appium Cucumber Test](https://github.com/priyankshah217/AppiumCucumberTest) - Sample Appium Cucumber Project. - [Appium-Native-Crawler](https://github.com/isonic1/Appium-Native-Crawler) - Appium Native Crawler CLI - Features include: Screenshots, Performance, Accessibility Detection, Google Translate, Applitools, Monkey Tester. - [coteafs-appium](https://github.com/WasiqB/coteafs-appium) - A tester friendly Mobile Automation Framework built on top of Appium which supports testing web and native apps for Android, iOS and Windows real or emulator Mobiles and Tablets. - [Optimus](https://github.com/testvagrant/optimusTemplate) - Cucumber based Mobile Automation Framework, which supports test parallelization. - [PageObject Pattern Framework](https://github.com/saikrishna321/PageObjectPatternAppium) - Sample Page Object Pattern Framework to use directly. - [Parallel Framework Java-Client](https://github.com/saikrishna321/AppiumTestDistribution) - Run appium tests in parallel across iOS and Android devices. ## Community - [Discuss](https://discuss.appium.io) - [Stack Overflow](http://stackoverflow.com/questions/tagged/appium) - [`@appiumdevs` on Twitter](https://twitter.com/AppiumDevs) - [`#appium` on Slack](http://appium.slack.com) ## Tips Contribute some ;) ## Contribute Contributions welcome! Read the [contribution guidelines](contributing.md) first. ## License [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) To the extent possible under law, [Srinivasan Sekar](https://github.com/SrinivasanTarget) has waived all copyright and related or neighboring rights to this work.