Appium中元素定位之一组元素定位API

应用场景

和定位一个元素相同,但如果想要批量的获取某个相同特征的元素,使用定位一组元素的方式更加方便

在 Appium 中定位一组元素的 API 与定位单个元素的 API 类似,但它们返回的是一个元素列表(List<MobileElement>)而不是单个元素。以下是用于定位一组元素的常用 API 方法及其示例:

通过 ID 定位一组元素

使用 findElementsById 方法,通过元素的 resource-id 定位一组元素:

java 复制代码
List<MobileElement> elementsById = driver.findElementsById("com.example:id/button");
for (MobileElement element : elementsById) {
    element.click(); // 对每个元素执行操作
}

通过 XPath 定位一组元素

使用 findElementsByXPath 方法,通过 XPath 表达式定位一组元素:

java 复制代码
List<MobileElement> elementsByXPath = driver.findElementsByXPath("//*[@text='Login']");
for (MobileElement element : elementsByXPath) {
    element.click(); // 对每个元素执行操作
}

通过 Accessibility ID 定位一组元素

使用 findElementsByAccessibilityId 方法,通过元素的 content-desc 属性定位一组元素:

java复制

java 复制代码
List<MobileElement> elementsByAccessibilityId = driver.findElementsByAccessibilityId("Login Button");
for (MobileElement element : elementsByAccessibilityId) {
    element.click(); // 对每个元素执行操作
}

使用 MobileBy 定位一组元素

Appium 提供了 MobileBy 类,可以使用更通用的方式定位一组元素:

java 复制代码
import io.appium.java_client.MobileBy;

List<MobileElement> elementsByMobileBy = driver.findElementsByMobileBy(MobileBy.id("com.example:id/button"));
for (MobileElement element : elementsByMobileBy) {
    element.click(); // 对每个元素执行操作
}

通过名称定位一组元素

使用 findElementsByName 方法,通过元素的 text 属性定位一组元素:

java 复制代码
List<MobileElement> elementsByName = driver.findElementsByName("Login");
for (MobileElement element : elementsByName) {
    element.click(); // 对每个元素执行操作
}

通过类名定位一组元素

使用 findElementsByClassName 方法,通过元素的类名定位一组元素:

java 复制代码
List<MobileElement> elementsByClassName = driver.findElementsByClassName("android.widget.Button");
for (MobileElement element : elementsByClassName) {
    element.click(); // 对每个元素执行操作
}

通过 Tag Name 定位一组元素

使用 findElementsByTagName 方法,通过元素的标签名定位一组元素:

java 复制代码
List<MobileElement> elementsByTagName = driver.findElementsByTagName("Button");
for (MobileElement element : elementsByTagName) {
    element.click(); // 对每个元素执行操作
}

通过 CSS Selector 定位一组元素

使用 findElementsByCssSelector 方法,通过 CSS 选择器定位一组元素:

java 复制代码
List<MobileElement> elementsByCssSelector = driver.findElementsByCssSelector("android.widget.Button[text='Login']");
for (MobileElement element : elementsByCssSelector) {
    element.click(); // 对每个元素执行操作
}

在这些示例中,我们遍历了返回的元素列表,并对每个元素执行了点击操作。您可以根据需要替换这些操作。这些方法可以帮助您在 Appium 中定位和操作移动应用中的一组元素。

概念:

如果通过一组的方式进行定位,获取的返回值不再是一个元素。而是一个列表,列表中装着所有符合这个特征的元素

相关推荐
一只小H呀の2 天前
移动自动化测试-appium
appium
w135110691505 天前
一、Appium环境安装
appium
测试199813 天前
Appium如何实现移动端UI自动化测试?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
一直开心14 天前
Appium的学习总结-Inspector参数设置和界面使用(5)
appium·inspector
程序员的世界你不懂17 天前
从定义、原理、环境搭建、安装问题排查等深入了解Appium
经验分享·百度·appium
niuniu_66620 天前
安全性测试(Security Testing)
测试工具·单元测试·appium·测试·安全性测试
niuniu_66621 天前
appium应用测试场景
功能测试·selenium·测试工具·appium·测试
suimeng622 天前
Appium中元素定位的注意点
appium
suimeng624 天前
Appium中元素定位之一个元素定位API
appium
一禅(OneZen)24 天前
【L2.第二章】Appium 元素定位工具
python·selenium·appium·自动化·web