移动端自动化-Appium元素定位
文章目录
- Appium元素定位
- 第一类:属性定位
- 第二类:路径定位
- 常见问题
- 理解appium server 和 appium inspector 以及 appium-python-client的关系
appium是跨平台的,支持OSX,Windows以及Linux系统。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性 appium支持多语言,采用C/S设计模式,只要满足client能够发送http请求给server即可。
Appium元素定位
元素定位,就是寻找元素;而寻找元素的方式,有且只有两类;
第一类:属性定位
其包含: 标签名、文本、各类明确的属性
因为属性无法穷举,所以我们约定,只对几种属性进行定位使用:
1)content-desc ----> 对应的appium定位方式 —> accessibility id 定位方式的值 ----> content-desc 属性的值 (有可能出现定位不到唯一值)
2)class name —> 对应的appium定位方式 ----> class name 定位方式的值 ----> class name 属性的值(有可能出现定位不到唯一值)
3)tag name —> 对应的appium定位方式 ----> class name 定位方式的值 —> tag name 的值(appium2.x已经舍弃掉了)
4)resource-id ----> 对应的appium定位方式 ----> id 定位方式的值 —> resource-id 的值(有可能出现定位不到唯一值)
5)name ----> 对应的appium定位方式 ----> name 定位方式的值 —> name 的值(一般都是可以定位到唯一值)
页面的源码是前端开发人员可以操控,他怎么写这个页面源代码,这个页面源代码里面的元素就有什么属性;
下面的 AppiumBy 和 MobileBy 只需要用一个就行了
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.mobileby import MobileBy
第二类:路径定位
利用元素和元素之间的层级关系进行定位
有两种方式:
1) xpath
2) css selector
路径的名称一定是用到标签名、补充描述、层级的表示符;
可能会遇到一些特殊情况:无论怎么定位,元素都会出现N个,都不能定位到你想要的元素;
解决方案一:使用绝对路径一定能解决;
解决方案二:元素内定位(寻找上一级的唯一属性,再定义下级的位置)
常见问题
理解appium server 和 appium inspector 以及 appium-python-client的关系
appium server 是作为⼀个服务存在;
appium inspector 是⼀个客户端,将命令发送给了 appium server,然后由appium server 将命令转化为移动设备的操作命令,从⽽实现移动设备实现⾃动化操作;
Appium-python-client 也是⼀个客户端,我们运⾏Appium-Python-Client所⽣成的代码时,其本质,也是将代码发送给了appium server,appium server 将命令转化为移动设备的操作命令;从⽽实现移动设备实现⾃动化操作;
appium inspector 在自动化测试过程中,主要是用作调试工具,本质是一个客户端。
相关文章:
移动端自动化-Appium元素定位
文章目录 Appium元素定位第一类:属性定位第二类:路径定位 常见问题理解appium server 和 appium inspector 以及 appium-python-client的关系 appium是跨平台的,支持OSX,Windows以及Linux系统。它允许测试人员在不同的平台&#x…...
menuconfig 图形化配置原理说明三
一. 简介 本文继续简单了解一下,uboot的图形化配置原理。具体了解 Kconfig语法。 之前文章了解了几个 Kconfig语法。地址如下: menuconfig 图形化配置原理说明二-CSDN博客 二. menuconfig 图形化配置之 Kconfig语法 1. config 条目 顶层 Kconfig …...
Ansible简介
环境 控制节点:Ubuntu 22.04Ansible 2.10.8管理节点:CentOS 8 组成 Ansible环境主要由三部分组成: 控制节点(Control node):安装Ansible的节点,在此节点上运行Ansible命令管理节点ÿ…...
Tomcat+nginx负载均衡和动静分离
Nginx实现负载均衡和动静分离的原理 Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但是不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,…...
全景环视AVM标定
目录 一、前言 二、鱼眼模型 三、标定流程 四、角点提取 4.1 亚像素坐标计算...
【JavaScript】leetcode链表相关题解
【JavaScript】leetcode链表相关题解 一、什么是链表?二、Javascript中的链表三、leetcode相关链表2.两数相加237.删除链表中的节点206.反转链表 💎个人主页: 阿选不出来 💎个人简介: 大三学生,热爱Web前端,随机掉落学…...
洞察运营机会的数据分析利器
这套分析方法包括5个分析工具: 用“描述性统计”来快速了解数据的整体特点。用“变化分析”来寻找数据的问题和突破口。用“指标体系”来深度洞察变化背后的原因。用“相关性分析”来精确判断原因的影响程度。用“趋势预测”来科学预测未来数据的走势,...
使用Python实现文字的声音播放
winsound 是 Python 的一个内置模块,它提供了访问 Windows 操作系统的声音播放功能的接口。这个模块可以用来播放简单的声音,例如提示音或者短促的音效。 # Author : 小红牛 # 微信公众号:WdPython import win32com.client import winsound#…...
gulp自动化构建
什么是Gulp? Gulp是一种前端开发过程中广泛使用的自动化构建工具,它是基于Node.js构建的,能够极大地提高开发效率和代码质量。Gulp的主要功能包括文件的压缩、合并、重命名等,同时它也支持文件监听和浏览器自动刷新等功能。使用Gulp&#x…...
java时间解析生成定时Cron表达式工具类
Cron表达式工具类CronUtil 构建Cron表达式 /****方法摘要:构建Cron表达式*param taskScheduleModel*return String*/public static String createCronExpression(TaskScheduleModel taskScheduleModel){StringBuffer cronExp new StringBuffer("");if(…...
JavaEE 网络原理——TCP的工作机制(末篇 其余TCP特点)
文章目录 一、滑动窗口二、流量控制三、拥堵控制四、延时应答五、捎带应答六、面向字节流七、异常情况八、总结 其余相关文章: JavaEE 网络原理——TCP的工作机制(中篇 三次握手和四次挥手) 本篇文章衔接的是前面两篇文章的内容,在这里继续解释 TCP 的内…...
【软件测试】了解JUnit单元测试框架常用注解
目录 1、认识JUnit 2、Junit中常见的注解 1、Test 2、Disabled 3、BeforeAll和AfterAll 4、BeforeEach和AfterEach 5、 ParameterizedTest:参数化 6、order 3、断言 1、断言相等【Assertions.assertEquals(预期,比较值)】;相等测试通…...
【广州华锐互动】三维全景3D消防科普展馆
在我们的日常生活中,火灾安全是一个不容忽视的重要问题。然而,由于缺乏对火灾的了解和应对技巧,许多人在面对火灾时往往感到无助和恐慌。为了解决这个问题,广州华锐互动开发了三维全景3D消防科普展馆,它是一个以虚拟现…...
某大型车企:加强汽车应用安全防护,开创智能网联汽车新篇章
某车企是安徽省最大的整车制造企业,致力于为全球消费者带来高品质汽车产品和服务体验,是国内最早突破百万销量的汽车自主品牌。该车企利用数字技术推动供应链网络的新型互动,加快数字化转型,持续进行场景创新、生态创新…...
LLVM学习笔记(50)
4.1.4. DAG合并与合法化 来自SelectionDAGBuilder的SelectionDAG输出还不能进行指令选择,必须通过额外的转换——显示在上图。在指令选择前应用的遍序列如下: 匹配一组节点,在有利时使用更简单的构造来替换它们,DAG合并遍优化Se…...
rpc入门笔记0x01
syntax "proto3"; // 这是个proto3的文件message HelloRequest{ // 创建数据对象string name 1; // name表示名称,编号是1 }生成python文件 安装grpcio和grpcio-tools库 pip install grpcio #安装grpc pip install grpcio-tools #安装grpc tools生成…...
web - Tomcat服务器
文章目录 目录 文章目录 前言 一 . CS和BS的异同 二 . 什么是Tomcat 二 . Tomcat安装 四 . Tomcat目录结构 bin目录: 用于存放二进制的可执行文件 config目录 server.xml:配置整个服务器信息。例如修改端口号。默认HTTP请求的端口号是:8080 lib目录 log…...
后端接口返回常见的状态码
2开头 (请求成功)表示成功处理了请求的状态代码 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 …...
50.MongoDB快速入门实战
MongoDB概念 MongoDB是一个文档数据库(以 JSON 为数据模型),由C语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。 原则上 Oracle 和 MySQL 能做的事情,MongoDB 都能做(包括 ACID 事务&#x…...
一款功能强大的音乐曲谱软件Guitar Pro 8 .1.1for Mac 中文破解版
Guitar Pro 8 .1.1for Mac 中文破解版是一款功能强大的音乐曲谱软件,非常适合学习如何玩,改进技巧,重现喜爱的歌曲或陪伴自己。可以帮助我们进行吉他的学习、绘谱与创作,它包含了几乎所有的吉他现有指法及音色,在做弹拨…...
d2s-editor:突破暗黑破坏神2存档修改限制的网页解决方案
d2s-editor:突破暗黑破坏神2存档修改限制的网页解决方案 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款基于Vue.js开发的网页版暗黑破坏神2存档编辑器,它通过浏览器端即开即用的特性消除…...
Project AirSim避障实战:深度图分割与动态航向规划详解
1. 深度图避障的核心原理 深度图避障是无人机自主导航中最基础也最关键的环节之一。简单来说,它就像给无人机装上了一双能精确测距的"眼睛"。这双眼睛看到的不是普通照片,而是一张每个像素都带有距离信息的特殊图像——我们称之为深度图&#…...
iOS应用免上架安装全攻略:从Ad Hoc到TestFlight的实战选择
1. iOS应用免上架安装的核心需求 对于iOS开发者来说,App Store并不是唯一的应用分发渠道。在实际开发过程中,我们经常需要在不上架的情况下将应用安装到测试设备或特定用户的手机上。这种需求主要来自几个典型场景: 首先是开发阶段的快速验证…...
UNTRUNC:视频修复破局者——从文件截断到数据重生的技术解密
UNTRUNC:视频修复破局者——从文件截断到数据重生的技术解密 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 诊…...
3大创新突破:Element-Plus-X助力企业级AI交互应用的实战指南
3大创新突破:Element-Plus-X助力企业级AI交互应用的实战指南 【免费下载链接】Element-Plus-X Enterprise-level AI component library front-end solution 🤖 项目地址: https://gitcode.com/gh_mirrors/el/Element-Plus-X 在数字化转型加速的今…...
【Seed-Labs 2.0】从攻到防:实战解析SQL注入漏洞与预编译语句防御
1. SQL注入漏洞:从入门到实战 第一次接触SQL注入时,我被这种攻击方式的简单粗暴震惊了。只需要在登录框输入admin#,就能直接绕过密码验证进入系统。这让我意识到,很多看似复杂的系统安全问题,其实都源于最基础的编码疏…...
2025最权威的十大降重复率方案解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要把AIGC(人工智能生成内容)被查出来的可能性给降下去,得…...
NI USB-6210 DAQ采集卡开箱照
1、包装非常简单,有点对不起它6000~7000元的价格:2、 内部也没有什么特别的:3、一张用户须知,一本使用说明:4、一张光盘,感觉有点Low,现在电脑很少有光驱了:5、这条USB线据说要200大…...
YamlDotNet类型推断:智能处理复杂对象图的完整指南
YamlDotNet类型推断:智能处理复杂对象图的完整指南 【免费下载链接】YamlDotNet YamlDotNet is a .NET library for YAML 项目地址: https://gitcode.com/gh_mirrors/ya/YamlDotNet YamlDotNet是一个功能强大的.NET库,专为处理YAML数据格式而设计…...
DeepSeek kubernetes-1.35.3/api/api-rules/sample_apiserver_violation_exceptions.list 源码分析
我来分析 Kubernetes API 规则文件 sample_apiserver_violation_exceptions.list。这个文件是 Kubernetes API 合规性检查的一部分,用于管理 API 规则违规的例外情况。 文件概述 该文件位于 Kubernetes 源码的 api/api-rules/ 目录下,用于记录 API 规则检…...
