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

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.dtcms.com/a/94968.html

相关文章:

  • SpringBoot美容院管理系统设计与实现
  • linux常用指令(10)
  • CSS 美化页面(二)
  • 【C++接入大模型】WinHTTP类封装:实现对话式大模型接口访问
  • LibVLC —— 《基于Qt的LibVLC专业开发技术》视频教程
  • MATLAB绘图配色包说明
  • 深入理解Hibernate:Java持久层框架的全面指南
  • 长江学者答辩ppt_特聘教授ppt案例_校企联聘ppt制作_青年项目ppt模板
  • Java面试黄金宝典18
  • 【活动回顾】StarRocks Singapore Meetup #2 @Shopee
  • 23种设计模式-适配器(Adapter)设计模式
  • 动态规划(10.地下城游戏)
  • vue3中,route4,获取当前页面路由的问题
  • Java面试黄金宝典14
  • 什么时候用到 JVM 调优,调优哪些参数
  • 数字图像处理 -- 霍夫曼编码(无损压缩)练习
  • 【区块链安全 | 第七篇】EVM概念详解
  • 排序--快排--非递归法
  • CSS3学习教程,从入门到精通,CSS3 元素的浮动与定位语法知识点及案例代码(17)
  • nuxt3 seo优化
  • WPF中的Adorner基础用法详解与实例
  • Java中清空集合列表元素有哪些方式
  • 【Elasticsearch基础】基本核心概念介绍
  • [python]基于yolov8实现热力图可视化支持图像视频和摄像头检测
  • kubernet在prometheus+alertmanager+grafana框架下新增部署loki模块
  • 【进阶】vscode 中使用 cmake 编译调试 C++ 工程
  • uni-app页面怎么设计更美观
  • 快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)
  • 基于模糊PID算法的智能洗衣机控制器设计,实现洗衣过程智能化,能够监测衣物重量和污泥,实现洗涤时间、洗衣液投放的智能控制
  • 解析 ID 数组传参的解决方案:基于 Axios 的实现