企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) # 元素查找 多个元素的查找方法 [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## 用法示例 ```java // Java List<MobileElement> elementsOne = (List<MobileElement>) driver.findElementsByAccessibilityId("SomeAccessibilityID"); List<MobileElement> elementsTwo = (List<MobileElement>) driver.findElementsByClassName("SomeClassName"); ``` ```python # Python el = self.driver.find_elements_by_accessibility_id('SomeAccessibilityID') ``` ```javascript // Javascript // webdriver.io example $$("~SomeAccessibilityId"); // wd example let elementsOne = await driver.elementsByAccessibilityId("SomeAccessibilityID"); let elementsTwo = await driver.elements("id", "SomeID"); ``` ```ruby # Ruby # ruby_lib example find_elements(:accessibility_id, "~SomeAccessibilityID") # ruby_lib_core example @driver.find_elements(:accessibility_id, "~SomeAccessibilityID") ``` ```php # PHP $els = $this->elements($this->using('accessibility id')->value('SomeAccessibilityID')); ``` ```csharp // C# IEnumerable<AppiumWebElement> elementsOne = driver.FindElementsByAccessibilityId("SomeAccessibilityID"); IEnumerable<AppiumWebElement> elementsTwo = driver.FindElementsByClassName("SomeClassName"); ``` [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## 查找方法 |方法|描述| |--------|-----------| |Accessibility ID|一串从UI元素读取到的特殊标志符。对于XCUITest来说,它对应元素的`accessibility-id`属性。对于Android来说它则对应元素的`content-desc`属性| |Class name|对于iOS应用来说,它以XCUI元素类型开头,对应XCUI元素的完整名称。反之,对于Android应用来说,它表示的是UIAutomator2类的完整类名(例如:android.widget.TextView)| |ID|元素的原始标志符. Android中对应`resource-id`字段; iOS中对应`name`字段 。| |Name|元素的名称| |XPath|使用xpath方法对app XML源文件进行检索 (由于该方法会对系统性能有一定的影响,一般不推荐使用)| |Image|通过匹配元素对应的base 64图像文件来进行元素定位| |Android UiAutomator (UiAutomator2 适用)|通过使用UI Automator应用接口, 特别是使用[UiSelector](https://developer.android.com/reference/android/support/test/uiautomator/UiSelector.html)类来进行元素的定位。你可以通过Appium发送一串字符型的Java代码给到服务端,服务端将会在应用环境中去执行该代码,并返回一个或多个元素| |Android View Tag (Espresso 适用)|通过元素的[view tag](https://developer.android.com/reference/android/support/test/espresso/matcher/ViewMatchers.html#withTagValue(org.hamcrest.Matcher%3Cjava.lang.Object%3E))来进行匹配| |Android Data Matcher (Espresso 适用)|适用[Espresso DataMatcher](https://developer.android.com/reference/android/support/test/espresso/Espresso#ondata)来进行元素匹配| |IOS UIAutomation|当对iOS应用进行自动化时, 可以使用苹果的[Instruments](../drivers/ios-uiautomation.md) 框架来进行元素查找| [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## 返回结果描述 获取到一个与[定位器](../writing-running-appium/finding-elements.md)相匹配的元素列表 [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## 版本支持 [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### Appium服务端 |平台|Driver|平台版本|Appium版本|Driver版本| |--------|----------------|------|--------------|--------------| | iOS | [XCUITest](../drivers/ios-xcuitest.md) | 9.3+ | 1.6.0+ | 全部 | | | [UIAutomation](../drivers/ios-uiautomation.md) | 8.0 to 9.3 | 全部 | 全部 | | Android | [Espresso](../drivers/android-espresso.md) | ?+ | 1.9.0+ | 全部 | | | [UiAutomator2](../drivers/android-uiautomator2.md) | ?+ | 1.6.0+ | 全部 | | | [UiAutomator](../drivers/android-uiautomator.md) | 4.3+ | 全部 | 全部 | | Mac | [Mac](../drivers/mac.md) | ?+ | 1.6.4+ | 全部 | | Windows | [Windows](../drivers/windows.md) | 10+ | 1.6.0+ | 全部 | [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### Appium客户端 |编程语言|支持版本|对应文档| |--------|-------|-------------| |[Java](https://github.com/appium/java-client/releases/latest)| 全部 | [seleniumhq.github.io](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#findElements-org.openqa.selenium.By-) | |[Python](https://github.com/appium/python-client/releases/latest)| 全部 | [selenium-python.readthedocs.io](http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.find_elements) | |[Javascript (WebdriverIO)](http://webdriver.io/index.html)| 全部 | | |[Javascript (WD)](https://github.com/admc/wd/releases/latest)| 全部 | [github.com](https://github.com/admc/wd/blob/master/lib/commands.js#L798) | |[Ruby](https://github.com/appium/ruby_lib/releases/latest)| 全部 | [www.rubydoc.info](https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/SearchContext:find_elements) | |[PHP](https://github.com/appium/php-client/releases/latest)| 全部 | [github.com](https://github.com/appium/php-client/) | |[C#](https://github.com/appium/appium-dotnet-driver/releases/latest)| 全部 | [github.com](https://github.com/appium/appium-dotnet-driver/blob/master/src/Appium.Net/Appium/AppiumWebElement.cs) | [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## HTTP应用程序接口文档 [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### 接口 `POST /session/:session_id/elements` [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### URL参数 |字段名|字段描述| |----|-----------| |session_id|执行命令所使用到的Session ID| [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### 参数 |字段名|字段类型|字段描述| |----|----|-----------| | using | `string` | 使用的定位方法 | | value | `string` | 查找对象 | [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ### 返回结果 定位到的元素所对应的JSON对象列表(`Array<String>`) [//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/element/find-elements.yml) ## 其他链接 * [W3C 文档](https://www.w3.org/TR/webdriver/#dfn-find-elements) * [JSONWP 文档](https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidelements)