当前位置: 首页 > article >正文

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

应用场景

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

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

通过 ID 定位一组元素

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

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

通过 XPath 定位一组元素

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

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

通过 Accessibility ID 定位一组元素

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

java复制

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

使用 MobileBy 定位一组元素

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

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 属性定位一组元素:

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

通过类名定位一组元素

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

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

通过 Tag Name 定位一组元素

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

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

通过 CSS Selector 定位一组元素

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

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

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

概念:

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


http://www.kler.cn/a/611834.html

相关文章:

  • 蓝桥杯备考:真题之飞机降落(暴搜+小贪心)
  • Flutter 完整开发指南
  • 系统调用 与 中断
  • Transformer | 一文了解:缩放、批量、多头、掩码、交叉注意力机制(Attention)
  • DMA 之FIFO的作用
  • .NET开源的智能体相关项目推荐
  • c#的反射和特性
  • Docker实现MySQL主从复制配置【简易版】
  • 旅游纵览杂志旅游纵览杂志社旅游纵览编辑部2025年第2期目录
  • 微服务与分布式系统
  • Axure设计之中继器表格——拖动列调整位置教程(中继器)
  • python文件保存
  • Nextjs15 - 服务端组件(RSC)与客服端组件
  • SVTAV1热点函数-svt_ext_all_sad_calculation_8x8_16x16_avx2
  • python面试-基础
  • thinkphp8.0\swoole的websocket应用
  • vue配置.eslintrc、.prettierrc详解
  • Android 问真八字-v2.1.7[看八字APP]
  • Netty源码—8.编解码原理二
  • 2025年具有AI招聘管理系统选型及攻略分享