This documentation is deprecated. Please refer to the README in the Appium repository or Appium 2.0 documentation.

  Edit this Doc Find Elements

Search for multiple elements

Example Usage

List<MobileElement> elementsOne = (List<MobileElement>) driver.findElementsByAccessibilityId("SomeAccessibilityID");
List<MobileElement> elementsTwo = (List<MobileElement>) driver.findElementsByClassName("SomeClassName");

el = driver.find_elements(AppiumBy.ACCESSIBILITY_ID,'SomeAccessibilityID')

// webdriver.io example
$$("~SomeAccessibilityId");

// wd example
let elementsOne = await driver.elementsByAccessibilityId("SomeAccessibilityID");
let elementsTwo = await driver.elements("id", "SomeID");

# ruby_lib example
find_elements(:accessibility_id, "~SomeAccessibilityID")

# ruby_lib_core example
@driver.find_elements(:accessibility_id, "~SomeAccessibilityID")

IEnumerable<AppiumWebElement> elementsOne = driver.FindElementsByAccessibilityId("SomeAccessibilityID");
IEnumerable<AppiumWebElement> elementsTwo = driver.FindElementsByClassName("SomeClassName");

Selector Strategies

Strategy Description
Accessibility ID Read a unique identifier for a UI element. For XCUITest it is the element's accessibility-id attribute. For Android it is the element's content-desc attribute.
Class name For IOS it is the full name of the XCUI element and begins with XCUIElementType. For Android it is the full name of the UIAutomator2 class (e.g.: android.widget.TextView)
ID Native element identifier. resource-id for android; name for iOS.
Name Name of element
XPath Search the app XML source using xpath (not recommended, has performance issues)
Image Locate an element by matching it with a base 64 encoded image file
Android UiAutomator (UiAutomator2 only) Use the UI Automator API, in particular the UiSelector class to locate elements. In Appium you send the Java code, as a string, to the server, which executes it in the application’s environment, returning the element or elements.
Android View Tag (Espresso only) Locate an element by its view tag
Android Data Matcher (Espresso only) Locate an element using Espresso DataMatcher
IOS UIAutomation When automating an iOS application, Apple’s Instruments framework can be used to find elements

Description

Get a list of elements that match the locator selector.

Support

Appium Server

Platform Driver Platform Versions Appium Version Driver Version
iOS XCUITest 9.3+ 1.6.0+ All
UIAutomation 8.0 to 9.3 All All
Android Espresso ?+ 1.9.0+ All
UiAutomator2 ?+ 1.6.0+ All
UiAutomator 4.3+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

Appium Clients

Language Support Documentation
Java All seleniumhq.github.io
Python All selenium-python.readthedocs.io
Javascript (WebdriverIO) All
Javascript (WD) All github.com
Ruby All www.rubydoc.info
C# All github.com

HTTP API Specifications

Endpoint

POST /session/:session_id/elements

URL Parameters

name description
session_id ID of the session to route the command to

JSON Parameters

name type description
using string The locator strategy to use
value string The search target

Response

A list of of JSON objects for the located elements (Array<String>)

See Also