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

概念:

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

相关推荐
Code Man1 天前
Windows 下使用 Appium
android·windows·appium
祉猷并茂,雯华若锦5 天前
Appium 3.x安卓按键与通知栏操作全指南
android·appium
祉猷并茂,雯华若锦7 天前
Appium 3.x实战:获取元素属性全解析
python·appium·自动化
祉猷并茂,雯华若锦7 天前
Appium 3.x安卓APP企业级安装实战
android·appium
祉猷并茂,雯华若锦9 天前
Appium 3.x 实战:元素定位与常见错误解析
开发语言·python·appium
进击的雷神19 天前
埋点skill使用与自动化
appium·自动化·埋点·codex·app自动化
测试开发-学习笔记2 个月前
安装appium
appium
one day3212 个月前
手机安装Appium Settings后闪退-最简单解决方式
appium
川石课堂软件测试2 个月前
UI自动化测试|CSS元素定位实践
css·测试工具·ui·fiddler·单元测试·appium·harmonyos