Step by Step Mobile App Testing with Appium in Python

In this series of blogs, I will discuss about the appium (test automation framework for mobile apps). We will discuss how you can automate your android mobile apps and save your testing hours. I will cover appium with python client and for android only.

What is Appium?

Appium is an open source test automation framework that can be used to test native, hybrid and mobile web apps. It uses Web-Driver protocol to test iOS and Android apps. This is how Appium works…   Using Appium with Python : Introduction 1  



  • Of course basics of Python.
  • You must have following environment variables  set on your windows machine.
    1. JAVA_HOME – C:\\Program FilesJavajdk1.8.0_25
    2. ANDROID_HOME – D:\\Android_Developmentandroid_sdk
    3. ANT_HOME –  C:apache-ant-1.9.4
    4. PATH – C:\\WindowsSystem32;D:Android_Developmentandroid_sdkplatform-                                                    tools;%JAVA_HOME%bin;D:Android_Developmentandroid_sdktools;%ANT_HOME%bin;
  • Android device with USB Debugging is ‘ON’.
  • Python Appium Client – You can install it using pip using below mentioned command in ‘CMD'[code] pip install Appium-Python-Client [/code]
Assuming that you have already installed required software and Python library on your machine.

Configuring Appium and inspect our Demo App for resources

Step 1: From source code extract the files and put the ‘MyApplication.apk’ file somewhere in one folder. (Note : You can use your own APK) [quads id=”2″] Step 2: Run Appium.exe and go to first tab(Android icon) and browse the file , Appium will automaticaly pull the package info, Launch Activity etc. details Step3: Start the Appium server by Clicking the Play icon and Click on the “Search icon” button to inspect the resource for path,id,name etc. As you can see I have a resource ID of the refresh button of my Demo App. Copy that ID we need it for future. Step 4: It will install the APK to the device and Now you can see the Appium inspector to see the Resource IDs and other information in details tab. Step 5 : If you click on the “android.widget.ImageButton[384,755][480,854]” . In the details section you can see its resource ID: “com.witmergers.getstatus:id/fab” . Step 6: Now open Pycharm and write code in python to open the Application and Click on the Image Button(Refresh Button).
__author__ = 'WP8Dev'
import os
import unittest
from appium import webdriver
''' by Promode '''
''' This Test Case Just Click on the Refresh Button My Application '''
''' Just Click and Verify it in you Phone '''
''' Copyright 2015 '''

class ContactAppTestAppium(unittest.TestCase):

def setUp(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = 'A102'
desired_caps['app'] = 'C:PyEditorAppium_ScrollTestsrcWitStatus.apk'
desired_caps['appPackage'] = 'com.witmergers.getstatus'
desired_caps['appActivity'] = '.MainActivity'

self.driver = webdriver.Remote('', desired_caps)

def test_ClickRefreshLink(self):
refreshButton = self.driver.find_element_by_id("com.witmergers.getstatus:id/fab")
## Right now we are just verify the displayed message on the Phone
## You can right code to handle that toast message and Verify that message

def tearDown(self):

if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(ContactAppTestAppium)
Step 7: Run the python file in PyCharm. If all goes well you will see the Application will open in you device and Refresh Button will be clicked followed by Closing of the Application. In the Pycharm Output window you will see the “Test Passed” with Ok [quads id=”1″] [sociallocker]
Source code on GitHub
[/sociallocker] Now start developing more Test cases and keep testing Apps.

8 thoughts on “Step by Step Mobile App Testing with Appium in Python”

  1. Can you please give me an idea about how much API support is available if Appium-python is used in comparison to Appium-Java ?

  2. Hello bro.
    i am totally fedup. for the last 24 hours continuing try to make a .py into .apk through virtual box, ubuntu, python, linux, android.
    but cant possible
    could you please help me


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.