By Class Name Locator : Appium Python - Skill2Lead.com

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.

ClassName Locator

We can write two ways to find element by using find_element() method. Let us discuss one by one.

First type , We can identify mobile elements by using By class and locator type in find_element() method.

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


Second , We can call the direct class name method of find_element.

Syntax : driver.find_element_by_class_name("Locator_Value")


Type-1 , Let us see type 1 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 of type-1
  • Wait for 2 seconds
  • Close the App

ByClassName_Type1.py

from appium import webdriver
import time
from selenium.webdriver.common.by import By

# 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(By.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(By.CLASS_NAME,"android.widget.EditText")
ele_classname.click()
ele_classname.send_keys("Skill2Lead")

time.sleep(2)

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

Type-2 , Let us see type 2 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 of type-2
  • Wait for 2 seconds
  • Close the App

ByClassName_Type2.py

from appium import webdriver
import time

# 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_by_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_by_class_name("android.widget.EditText")
ele_classname.click()
ele_classname.send_keys("Skill2Lead")

time.sleep(2)

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