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 中定位和操作移动应用中的一组元素。

概念:

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

相关推荐
傻啦嘿哟5 天前
Appium实现Android应用数据爬取:从环境搭建到实战优化
android·appium
中冕—霍格沃兹软件开发测试7 天前
边界值分析:功能测试中的精度利器
人工智能·功能测试·科技·测试工具·appium·bug
BatyTao8 天前
vivo真机adb 命令获取手机当前窗口信息
adb·appium
中冕—霍格沃兹软件开发测试8 天前
探索性测试:思维驱动下的高效缺陷狩猎
人工智能·科技·开源·appium·bug
中冕—霍格沃兹软件开发测试8 天前
Git版本控制在测试项目管理中的应用
人工智能·git·科技·开源·appium·bug
中冕—霍格沃兹软件开发测试8 天前
用户体验测试:功能与界面并重
人工智能·科技·开源·appium·bug·ux
中冕—霍格沃兹软件开发测试9 天前
测试工具链的构建与团队协作:从工具集成到价值流动
人工智能·科技·测试工具·开源·appium·bug
仪***沿11 天前
基于粒子群算法的 33 节点配电网重构 MATLAB 程序探索
appium
测试人社区—841612 天前
Appium移动自动化测试:从入门到精通实战
人工智能·安全·appium·自动化·bug·postman
我会一直在的14 天前
Appium的基础API介绍
python·appium·自动化