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

APP自动化测试元素定位及隐式等待

元素定位是UI自动化测试中最关键的一步,假如在自动化测试中没有定位到页面中素,也就无法完成对页面的测试操作。那么,我们在自动化测试中如何定位到是要部面元素呢?

下面聊一聊用 Appium 定位元素的方式。

定位页面元素有很多种方式,例如,可以通过ID、accessibility_id、XPth等方式进行页面元素的定位,也可以使用 Android 和i0S 提供的定位方式实现页面元素的定位。

Accessibility ID:识别一个UI元素,对于 XCUITest 引擎,它对应的属性名是'accessibility-id',对于 Android 系统的页面元素,它对应的属性名是'content-desc'。

Class name:对于iOS 系统,它的class 属性对应的属性值会以'XCUIElementType'开头,对于 Android 系统,它对应的是UiAutomator2的class 属性(e.g·: android.widget.TextView)。

ID:原生元素的标识符,Android系统对应的属性名为'resource-id',iOS为'name'

Name:元素的名称

XPath:使用XPath表达式查找页面所对应的XML的路径(不推荐,存在性能问题)。

Image:通过匹配 base 64编码的图像文件定位元素。

Android UiAutomator(UiAutomator2 only):使用 UiAutomator提供的API,尤其是 UiSelector类来定位元素,在 Appium中,会将Java代码作为字符串发送到服务器,服务器在应用程序的环境中执行这段代码,并返回一个或多个元素。

Android View Tag (Espressoonly):使用 view tag 定位元素。

Android Data Matcher (Espressoonly):使用Espresso数据匹配器定位元素。

隐式等待是一种全局等待方式。设置了隐式等待时长,实际上是对页面中的所有查找元素的方法设置了加载时长,如果查找时间超出了设置时间则抛出异常。

假如在测试脚本中设置了隐式等待时长为10秒,测试脚本会在10秒内不停地执行查找页面元素操作,如果在第2秒就找到所需要的元素,就停止查找且继续执行后面的测试代码,如果查找时间超出了设置时间,则测试代码抛出异常。

一旦在测试代码中设置了隐式等待,则隐式等待就会存在整个WebDriver对象实例的生命周期中。例如,元素的测试代码每次调用find_element或者find_elements方法的时候,就会自动触发隐式等待。

相关文章:

APP自动化测试元素定位及隐式等待

元素定位是UI自动化测试中最关键的一步,假如在自动化测试中没有定位到页面中素,也就无法完成对页面的测试操作。那么,我们在自动化测试中如何定位到是要部面元素呢? 下面聊一聊用 Appium 定位元素的方式。 定位页面元素有很多种…...

Element plus 的 upload 组件实现自定义上传

Element Plus 是一个基于 Vue 3 的 UI 组件库,提供了许多常用的 UI 组件。其中,Upload 组件用于文件上传功能。如果你想实现自定义上传逻辑,可以通过 before-upload 和 http-request 属性来实现。 以下是一个简单的示例,展示如何…...

力扣-数据结构-10【算法学习day.81】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…...

WPF的一些控件的触发事件记录

<c1:C1ComboBox Width"230" ItemsSource"{Binding ReplaceWayList}" Style"{StaticResource ListSearch-C1ComboBox}" SelectedValueChanged"C1ComboBox_SelectedValueChanged"&#xff0c; 下拉框事件&#xff0c;值改变事件&a…...

C# 设计模式(创建型模式):建造者模式

C# 设计模式&#xff08;创建型模式&#xff09;&#xff1a;建造者模式 引言 在软件开发中&#xff0c;创建型设计模式主要关注对象的创建方式&#xff0c;其中建造者模式&#xff08;Builder Pattern&#xff09;是非常重要的一种。建造者模式通过一步一步构建一个复杂对象…...

关于模板函数的void返回值的判断:std::is_void与模板特化

int返回值的函数参数测试 #include <iostream> #include <functional>int return_int_func(){std::cout << __func__ << std::endl << std::flush;return 10086; }template<class U> auto CallDeviceMethodShort(std::function<U()&g…...

重现ORA-01555 细说Oracle Undo 数据管理

1. 概述 1.1. Undo 数据应用 undo数据是&#xff1a; 原始的、修改之前的数据副本 是针对更改数据的每个事务处理所捕获的 至少保留到事务处理结束 用于支持&#xff1a; 回退操作 读取一致性查询 闪回查询、闪回事务处理和闪回表 从失败的事务处理中进行恢复 1.2. 事…...

通过blob请求后端导出文件

后端controller PostMapping("/exportPlanProject2")public void exportActive(RequestBody IfPlanListDTO plan, HttpServletResponse httpServletResponse) throws IOException {}后端service public void exportExcel2(HttpServletResponse response) throws IOEx…...

养老院小程序怎么搭建?让老年人老有所养,老有所依!

随着社会老龄化的加剧&#xff0c;养老服务成为一个越来越重要的话题。在这个互联网的时代&#xff0c;养老院也开始拥抱技术&#xff0c;借助小程序的便捷性来改善老年人的居住和生活体验。那么&#xff0c;如何搭建一个适合老年人的养老院小程序呢?本文将从实际操作的角度出…...

【2024美国数学建模AB题原文翻译】

2024 MCM 问题A&#xff1a;资源可用性与性别比例 虽然一些动物物种超出了通常的雄性或雌性性别范畴&#xff0c;但大多数物种要么是雄性要么是雌性。尽管许多物种在出生时展现出1:1的性别比例&#xff0c;其他物种则偏离了这个性别比例&#xff0c;这被称为适应性性别比例变化…...

判断旗帜是否符合ISO新标准

背景介绍 在全球化的背景下&#xff0c;不同国家的旗帜设计需要满足某些国际标准以便于统一化和规范化。ISO&#xff08;国际标准化组织&#xff09;提出了一项新规定&#xff0c;要求国家旗帜在设计时遵循一些规则&#xff0c;特别是棋盘状设计中的颜色分布规则。比如&#x…...

海量数据存储实现方案设计1-mycat版

目的 这里使用mycat为例子说明方案设计思路&#xff08;仅个人学习、思考笔记&#xff09;。主要尝试解决海量数据存储、动态不停机扩容问题&#xff0c;不再受限于单库、单表、单机等。 mycat简述 mycat 主要以中间件代理的方式&#xff0c;不侵入工程代码来实现分库分表&a…...

Elasticsearch检索之三:官方推荐方案search_after检索实现(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) 1、search_after检索 在前面的文章介绍了fromsize的普通分页…...

hot100_238. 除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

软件测试基础详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “尽早的介入测试&#xff0c;遇到问题的解决成本就越低” 随着软件测试技术的发展&#xff0c;测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷&#xff0c;…...

MySQL 备份方案设计之准备事项

MySQL 备份方案设计之准备事项 文章目录 MySQL 备份方案设计之准备事项1.选择合适的备份工具2.其他需要考虑的因素推荐资料 1.选择合适的备份工具 工欲善其事&#xff0c;必先利其器。 目前市面上的 MySQL 备份工具也有很多&#xff0c;整理如下&#xff08;仅供参考&#xff…...

《计算机网络A》单选题-复习题库解析-最终

目录 151、信道容量计算公式“CW*log2&#xff08;1S/N&#xff09;”中&#xff0c;“S/N”表示&#xff08; &#xff09; 152、下面哪一种编码方式不包含同步时钟信息&#xff08; &#xff09; 153、子网划分的根本目的是&#xff08; &#xff09; 154、在传统以太…...

向 SwiftUI 视图注入 managedObjectContext 环境变量导致 Xcode 预览(Preview)崩溃的解决

问题现象 从 SwiftUI 诞生到现在,我们这些秃头码农们早已都习惯了在 Xcode 预览中调试 App 界面了。不过,对于某些场景下向 SwiftUI 视图传递 managedObjectContext 环境变量(environment)总是会导致 Xcode 预览崩溃,这是怎么回事呢? 如上图所示,甚至我们将一个常驻内存…...

Ruby 数据类型

Ruby 数据类型 Ruby&#xff0c;作为一种动态、开放源代码的编程语言&#xff0c;以其简洁明了的语法和强大的功能而闻名。在Ruby中&#xff0c;数据类型是编程的核心组成部分&#xff0c;它们决定了变量可以存储的信息种类以及可以对这些信息执行的操作。Ruby是一种类型安全的…...

复合机器人正以其高效、精准、灵活的特点,逐渐在汽车装配线上崭露头角

随着全球汽车制造业的快速发展&#xff0c;汽车装配线已成为衡量企业生产效率和技术水平的重要标准。传统的装配方式往往依赖于大量的人工操作&#xff0c;这不仅效率低下&#xff0c;还面临着质量不稳定、安全隐患等问题。然而&#xff0c;随着智能科技的飞速进步&#xff0c;…...

高效部署Kafka Connect集群:AKHQ的5个进阶实战策略

高效部署Kafka Connect集群&#xff1a;AKHQ的5个进阶实战策略 【免费下载链接】akhq Kafka GUI for Apache Kafka to manage topics, topics data, consumers group, schema registry, connect and more... 项目地址: https://gitcode.com/gh_mirrors/ak/akhq Apache K…...

Shell脚本进程锁机制解析

1. 命令行参数解析 (第9-21行)12345while getopts "m:o:r:" arg; docase $arg in# ... 参数处理逻辑&#xff08;代码中省略了具体内容&#xff09;esacdone使用 getopts 解析命令行参数支持三个带参数的选项&#xff1a;-m、-o、-r具体处理逻辑在代码中被省略了2. 文…...

高效微信聊天记录管理:解决数据丢失风险的本地化方案

高效微信聊天记录管理&#xff1a;解决数据丢失风险的本地化方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…...

Spring Data Elasticsearch查询方法大全:从简单查询到复杂聚合的10个实战案例

Spring Data Elasticsearch查询方法大全&#xff1a;从简单查询到复杂聚合的10个实战案例 【免费下载链接】spring-data-elasticsearch Provide support to increase developer productivity in Java when using Elasticsearch. Uses familiar Spring concepts such as a templ…...

终极指南:如何用3分钟为Windows换上《蔚蓝档案》风格光标主题

终极指南&#xff1a;如何用3分钟为Windows换上《蔚蓝档案》风格光标主题 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 每天面对电脑工作…...

AI智能体(Agent)的底层逻辑

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、核心模块&#xff1f; 二、工作流程 三、关键设计思想 3.1 ReAct 模式 3.2 工具调用&#xff08;Function Calling&#xff09; 3.3 记忆管理 3.4 多智能体…...

记录一次线上问题排查:JDK序列化问题

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

S-UI配置文件加密终极指南:保护敏感信息的最佳实践 [特殊字符]

S-UI配置文件加密终极指南&#xff1a;保护敏感信息的最佳实践 &#x1f512; S-UI是一款基于SagerNet/Sing-Box构建的高级Web面板&#xff0c;提供多协议支持和流量管理功能。在使用过程中&#xff0c;配置文件包含大量敏感信息&#xff0c;如API密钥、用户数据和服务器配置&…...

Llama-3.2V-11B-cot效果展示:漫画分镜连续性与叙事逻辑分析

Llama-3.2V-11B-cot效果展示&#xff1a;漫画分镜连续性与叙事逻辑分析 1. 模型能力概览 Llama-3.2V-11B-cot是基于Meta多模态大模型开发的专业级视觉推理工具&#xff0c;特别针对漫画分镜分析与叙事逻辑理解进行了深度优化。该模型在双卡4090环境下展现出强大的视觉推理能力…...

Poppler-Windows:Windows平台PDF处理工具包的高效部署方案

Poppler-Windows&#xff1a;Windows平台PDF处理工具包的高效部署方案 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 在数字化办公环境中&#xf…...