区别于Find Element,返回一个包所有元素的列表,如果没有元素返回空表
Find Elements
Search for multiple elements //搜索多个元素
Example Usage
Java | List elementsOne = (List) driver.findElementsByAccessibilityId("SomeAccessibilityID" );List elementsTwo = (List) driver.findElementsByClassName( "SomeClassName" ); |
Python | el = self.driver.find_elements_by_accessibility_id('SomeAccessibilityID' ) |
Javascript | // webdriver.io example $$( "~SomeAccessibilityId" );// wd example let elementsOne = await driver.elementsByAccessibilityId( "SomeAccessibilityID" );let elementsTwo = await driver.elements( "id" , "SomeID" ); |
Ruby | # ruby_lib example find_elements(:accessibility_id, "~SomeAccessibilityID" )# ruby_lib_core example @driver.find_elements(:accessibility_id, "~SomeAccessibilityID" ) |
C# | IEnumerable elementsOne = driver.FindElementsByAccessibilityId("SomeAccessibilityID" );IEnumerable elementsTwo = driver.FindElementsByClassName( "SomeClassName" ); |
PHP | $ els = $ this->elements($this->using('accessibility id' )->value('SomeAccessibilityID' )); |
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+ | All | 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 | appium.github.io |
Python | All | appium.github.io |
Javascript (WebdriverIO) | All | |
Javascript (WD) | All | github.com |
Ruby | All | www.rubydoc.info |
PHP | All | github.com |
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>
)