By Class Name

Identifying the MobileElement by “ClassName ”. It takes String as an argument. If an element isn't identified it throws an exception as No Such Element Exception.


Syntax : driver.find_element(AppiumBy.CLASS_NAME,"Locator_Value")

ClassName Locator

Let us see how to access the button using the Class name locator.


Example: In the below example we are launching the app on an Android device and sending text on an edit box using Class Name locator.

  • Launch the App on an Android device.
  • Click on the button using ID locator
  • Wait for 2 seconds
  • Enter the text on an edit box using Class Name
  • Wait for 2 seconds
  • Close the App

ByClassName.py

from appium import webdriver
import time
from appium.webdriver.common.appiumby import AppiumBy

# Step 1 : Create "Desired Capabilities"
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['automationName'] = 'UiAutomator2'
desired_caps['platformVersion'] = '10'
desired_caps['deviceName'] = 'Pixel3XL'
desired_caps['app'] = ('/Skill2Lead/Appium_Demo_App/Android/Android_Appium_Demo.apk')
desired_caps['appPackage'] = 'com.skill2lead.appiumdemo'
desired_caps['appActivity'] = 'com.skill2lead.appiumdemo.MainActivity'

# Step 2 : Create "Driver object"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)

# Step 3 : "Click on the button using ID locator value"
ele_id = driver.find_element(AppiumBy.ID,"com.skill2lead.appiumdemo:id/EnterValue")
ele_id.click()

# Step 4 : Wait for 2 seconds
time.sleep(2)

# Step 5: Enter the text in editbox
ele_classname = driver.find_element(AppiumBy.CLASS_NAME,"android.widget.EditText")
ele_classname.click()
ele_classname.send_keys("Skill2Lead")

time.sleep(2)

# Step 6 : Close the driver object
driver.quit()