Appium环境搭建及元素定位

news2024/9/24 2:24:09

01
Appium简介

Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver 协议驱动iOS,Android和Windows应用程序。

01
环境搭建步骤

Appium环境安装:

第一步
安装 appium 桌面版客户端
Appium-1.12.1.dmg(MAC环境)/Appium-windows-1.12.1.exe

第二步
安装 Appium-Python-Client
pip install Appium-Python-Client pip3 install Appium-Python-Client -i https://pypi.tuna.ts inghua.edu.cn/simple
注意:本版要>=0.29,通过pip list 可以查看版本号

第三步
安装 selenium
pip install selenium
注意:本版要>=3.141.0

第四步
安装 Android SDK
下载Android SDK,并配置环境变量

第五步
安装 夜神模拟器
运行nox_setup_v6.2.8.0_full.exe

MAC 运行 .dmg

第六步

将Android SDK中 platform-tools路径下的adb.exe 复制到模拟器安装路径下的bin目录替换原有的adb.exe 删除原有的nox_adb.exe,将新的adb.exe复制一份改名nox_adb.exe

第七步
启动设置
第八步

打开模拟器,启动appium 桌面版客户端服务运行以下代码

图片

02
Appium 原理

在这里插入图片描述

Capability

Appium Desktop

Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能。它是几个Appium相关工具的组合:

Appium Server的图形界面。您可以设置选项,启动/停止服务器,查看日志等…您也不需要使用Node 的NPM来安装Appium,因为Node运行时与Appium Desktop捆绑在一起。

您可以使用Inspector查看应用程序的元素,获取有关它们的基本信息,并与它们进行基本的交互

图片

Appium-desktop主界面包含三个菜单Simple、Advanced、Presets

Simple
设置Appium server的ip地址,本地调试可以将ip地址修改为127.0.0.1 port

设置端口号,默认是4723不用修改

Advanced
高级参数配置修改,主要是一些Android和iOS设备,log路径等相关信息的配置。

图片

第一个appium脚本
图片

03
capability - 参数介绍

公共 capability

图片

Android 独有capability

图片

IOS 独有capability

图片

启动过程【了解】

appium的启动实际上是在本机使用了4723端口开启了一个服务,我们写的 python 代码会访问本机的 appium 服务器,并获取 driver 对象

appium 会将我们的 driver 对象调用的方法转化成 post 请求,提交给appium服务器

appium 通过接收到的 post 请求发送给手机,再由手机进行执行

02
Appium元素信息的获取

01
UIAutomatorViewer的使用

用来扫描和分析 Android 应用程序的 UI 控件的工具

使用步骤:

  1. 进入SDK目录下的目录

mac 在 tools/bin 目录下,打开 uiautomatorviewer windows 在 tools 目录下,打开 uiautomatorviewer.bat

  1. 电脑连接真机或打开android模拟器

  2. 启动待测试app

  3. 点击 uiautomatorviewer 的左上角 Device Screenshot (从左数第二个按钮)

  4. 点击希望查看的控件

图片

查看右下角 Node Detail 相关信息示例

查看《设置》应用程序右上角 ”放大镜“ 按钮的 ”resource-id“

打开 uiautomatorviewer

打开 android 模拟器启动《设置》应用程序

点击 Device Screenshot 按钮点击 ”WLAN“ 按钮

查看 Node Detail 中的 ”resource-id“ 信息

图片

02
Appium inspector使用

操作步骤
在这里插入图片描述

配置应用信息

图片

定位方式

图片

03
Appium元素定位

定位一个元素
案例:启动设置,定位搜索按钮

ID定位
注意:定位id值不唯一

在这里插入图片描述

accessibility_id定位
案例同上,元素值唯一

在这里插入图片描述

xpath定位
案例同上

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux挂载磁盘命令

需求: 只有一个硬盘,创建多个挂载点 参考:linux如何实现挂载—linux_是小明同学啊的博客-CSDN博客_linux挂载 1 查看当前挂载情况 执行 df -h, 查看当前 / 根目录下挂载的分区名,在下图中为倒数第三行, …

html练习

1. 2. 3. <h1>各科小常识</h1> <h3>语文</h3> <p> 三国演义是中国四大古典名著之一&#xff0c;元末明初小说家罗贯中所著。是中国第一部章回体历史演义的小说&#xff0c;描写了从东汉末年到西晋初年近100年的历史风云。</p> <hr&g…

Ubuntu20.04 LTS 安装 ros Noetic 树莓派4/PC

Ubuntu 20.04 LTS 安装树莓派系统. 主要参考了这两篇文章&#xff1a; https://blog.csdn.net/liangforcold/article/details/126385774 https://blog.csdn.net/yangcunbiao/article/details/123056806 https://blog.csdn.net/duping812/article/details/110391081 1、下载安…

【前端-NPM私服】内网使用verdaccio搭建私有npm服务器-docker搭建verdaccio流程

目录一、npm私服是什么1. 定义2. 为什么需要npm私服二、npm私服如何使用1. 链接到npm私服2. 注册私服账号3. 发布组件到私服4. 关联LDAP服务5. 提高下载速度三、私服搭建方案四、docker搭建Verdaccio流程1. 拉镜像2. 创建卷3. 启动容器4. 软链接卷到统一的目录5. 配置Verdaccio…

【node.js】npm包管理工具的使用

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;node.jsx中npm包管理工具的基础使用&#xff0c;包与依赖关系的介绍 下图为本文的核心 目…

rmq 主备自动切换模式

https://rocketmq.apache.org/zh/docs/deploymentOperations/16autoswitchdeploy/ https://github.com/apache/rocketmq/blob/develop/docs/cn/controller/design.md controller 端 leader选举 主备自动切换模式就是controller模式&#xff0c;controller可以嵌入name serve…

ccc-sklearn-12-线性回归(2)

一、非线性问题&#xff1a;多项式回归 主要探讨&#xff1a;通过线性回归解决非线性问题 数据的线性与非线性 通常情况下&#xff0c;分类问题中决策函数往往是一个分段函数&#xff0c;这个函数明显不满足可以用一条直线进行表示的属性&#xff0c;因此分类问题中特征与标签[…

若依整合第三方登录

0&#xff1a;以gitee为例&#xff0c;首先开通gitee第三方登录&#xff1a;&#xff08;在设置里面的第三方应用里面新建&#xff09; 0.1&#xff1a;后端引入JustAuth第三方登陆框架&#xff1a; <dependency><groupId>me.zhyd.oauth</groupId><artif…

H5UI库、加密技术和二维码

一、H5UI库 1. 使用方法&#xff1a; ​ &#xff08;1&#xff09;页面中引入css文件 ​ h5ui.css &#xff08;h5ui.min.css&#xff09; ​ &#xff08;2&#xff09;页面中引入js文件 ​ ​ jquery.min.js ​ ​ h5ui.min.js 2. 组件…

十五、Kubernetes中Pod生命周期详解、实例

1、概述 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期&#xff0c;它主要包含下面的过程&#xff1a; pod创建过程 运行初始化容器&#xff08;init container&#xff09;过程 运行主容器&#xff08;main container&#xff09; 容器启动后钩子&#xff0…

对于负载均衡服务器一致性哈希算法一些简单的想法

文章目录一致性哈希负载均衡的介绍一致性哈希负载均衡的介绍 负载均衡这个概念可以抽象为&#xff1a;从n个候选服务器中选择一个进行通信。 负载均衡算法有&#xff1a;随机&#xff0c;轮询&#xff0c;最小连接数等。今天的“猪脚”是一致性哈希负载均衡算法&#xff1b; 一…

Java语法:枚举

1.枚举是什么&#xff1f; 枚举是Java中的一种特殊类型。 2.枚举的作用 是为了做信息的标志和分类。 3.枚举的语法 定义语法&#xff1a; 修饰符 enum 枚举名称 {第一行都是罗列枚举类实例的名称。 } /*** 枚举类*/ public enum Season {//枚举的第一行必须罗列枚举类的…

流量劫持的危害及应对方法

流量劫持总体来说属于中间人攻击的一种&#xff0c;本质上攻击者在通信两端之间对通信内容进行嗅探和篡改&#xff0c;以达到插入数据和获取关键信息的目的。目前互联网上发生的流量劫持基本是两种手段来实现的: 域名劫持&#xff1a;通过劫持掉域名的DNS解析结果&#xff0c;…

那些年,我们crush的爆款小游戏大盘点

小游戏&#xff0c;即小程序游戏&#xff0c;是小程序的一个子类目&#xff0c;其最大的特点就是“即点即玩”&#xff0c;具备出色的用户体验。如今大家的生活逐渐向快节奏发展&#xff0c;在各种压力下&#xff0c;人们更倾向于方便快捷的娱乐方式&#xff0c;而这正推动了小…

一年时间,拿到了人生中的第一个20万

目录一、2021年度博客之星评选第二名二、博客新星导师三、哪吒社区四、粉丝群五、付费专栏六、Java学习路线总结&#xff0c;搬砖工逆袭Java架构师七、关于读书八、你好2023一、2021年度博客之星评选第二名 2022年&#xff0c;是哪吒收获的一年&#xff0c;收获了人生中的第一…

Java虚拟机(JVM)面试专题 下(初级程序员P6)

Java虚拟机&#xff08;JVM&#xff09;面试专题 下&#xff08;初级程序员P6&#xff09; 六、四种引用 1. 强引用 普通变量赋值即为强引用&#xff0c;如 A a new A(); 通过 GC Root 的引用链&#xff0c;如果强引用不到该对象&#xff0c;该对象才能被回收 2. 软引用&a…

Redis架构 - Cluster集群模式

简介 Redis Cluster是Redis数据库的分布式解决方案&#xff0c;它能够将数据分布在多个Redis节点之间&#xff0c;从而提高数据的存储和访问能力。 Redis Cluster使用哈希槽&#xff08;hash slot&#xff09;机制来将数据分布在多个节点之间。每个节点都负责存储一定数量的哈…

LabVIEW NI Switch Executive是什么

LabVIEW NI Switch Executive是什么NI Switch Executive是一款智能开关管理与路由应用程序。它掀起了自动化测试设备(ATE)系统开关软件的新革命。借助NI Switch Executive&#xff0c;以交互方式配置和命名开关模块、外部连接和信号路由&#xff0c;从而提高开发效率。此外&…

Python笔记 -- 字符串和数字

文章目录1、print2、字符串2.1、改变大小写2.2、字符串拼接2.3、转义符2.4、移除空白3、数字3.1、运算3.2、下划线&#xff0c;多变量赋值python中定义变量时不需要指定数据类型 1、print print(1, 2, 3, 4, sep, end) print(10) print(1,2,3,4) #没写 sep 和 end 相当于 sep…

【开源代码】首个利用神经网络能够明确推断VIO中 IMU bias演化的方法

以下内容来自从零开始机器人SLAM知识星球 每日更新内容 点击领取学习资料 → 机器人SLAM学习资料大礼包 #论文##开源代码# Deep IMU Bias Inference for Robust Visual-Inertial Odometry with Factor Graphs 论文地址&#xff1a;https://arxiv.org/abs/2211.04517 作者单…