python自动化006:app自动化元素定位方式

app元素定位有三种方法,建议使用第三个,其余两个知道就行:

第一个工具:UIAutomatorView(sdk自带的工具)

第二个工具:Appium Inspector(这个工具是appium server提供的一个工具)

第三个工具:Weditor(UIautomator2 python第三方库 appUI自动化测试框架)建议使用

第一个:UIAutomatorView,这个是android SDK自带元素定位工具,无需下载。怎么使用呢?

打开android SDK安装路径,进入tools,在目录最下面有一个 uiautomatorviewer.bat 这个就是工具

打开 uiautomatorviewer.bat ,使用之前需要连接手机或模拟器

得到下图说明成功。但是不建议使用这个工具,界面丑,元素信息少。

第二个元素定位工具:Appium Inspector(这个工具是appium server提供的一个工具)

下载地址:https://github.com/appium/appium-inspector/releases

下载完成之后,双击傻瓜式安装就行了 。下图是安装完成之后的图标

因为是这个工具是和appium server 关联的,所以要先启动appnium server

然后再启动Appium Inspector

安装下图来配置Appium Inspector参数。

"platformName": "Android"。 设备类型,安装就填Android ,苹果就填ios

"appium:deviceName": "c84b98fd"。设备名:在cmd输入:adb devices 就可以看到你的设备名。 如果是模拟器, 需要使用命令:adb connect 127.0.0.1:62001来连接设备,再输入adb devices就可以看到连接的设备了

"appium:appPackage": "com.tencent.mobileqq"。要操作的APP应用包名(下面有介绍怎么用,app包名获取命令:aapt dump badging "app包的路径" | findstr package)

"appium:appActivity": ".activity.SplashActivity"。app应用程序主入口。(下面有介绍怎么用,app主程序入口命令:aapt dump badging app包的路径 | findstr activity)

"appium:noReset": true。这个的意思是,每次启动程序, 不清空缓存。(拿微信程序来操作的小心了,这个一定要填写, 否则你微信里面的东西全部不见了)

app包名获取方法:

打开CMD,进入SDK的 C:\sdk\android-sdk-windows\build-tools\30.0.0-preview 路径,如下图

如果不会cmd命令可以从文件夹进入,然后在文件上方输入cmd即可进入

然后输入命令:aapt dump badging app包的路径 | findstr package

可以先输入:aapt dump badging ,然后将apk托入cmd窗口,然后再将管道命令附上去 | findstr package,回车就可以得到包名

主程序入口获取方法: aapt dump badging app包的路径 | findstr activity

填写完信息,点击"保存"。 自己起个名字, 然后点击"启动会话"

上面这个工具,还是不建议使用,原因,没有下面这个工具完美。

第三个工具:Weditor(UIautomator2 python第三方库 appUI自动化测试框架)

第一步安装UIautomator2,cmd命令:pip install UIautomator2

第二步:先连接上模拟器,连接命令"adb connect 127.0.0.1:62001", 使用"adb devices"检查是否连接成功

连接成功之后, cmd输入命令:python -m uiautomator2 init

第三步,安装weditor,cmd命令:pip install weditor

第四步验证是否安装成功,cmd命令:weditor --help 。 出现下图提示则说明安装成功

如果出现"weditor"不是内部或外部命令,也不是可运行的程序或批处理文件。 原因可能是 是因为 Python 的Scripts目录未加入系统 PATH,解决方法如下。

第一步:找到 Python Scripts 目录,一般都是(用户安装)
  • 若为用户安装 (默认):路径为 C:\Users\wy158\AppData\Roaming\Python\Python311\Scripts
  • 若为全局安装 :路径为 C:\Program Files\Python311\Scripts
第二步:添加到系统环境变量
  1. 右键 "此电脑"→"属性"→"高级系统设置"→"环境变量"
  2. 在 "用户变量" 的Path中,点击 "新建",粘贴上述 Scripts 目录路径
  3. 点击 "确定" 保存,重启命令行窗口(必须重启才生效)

再cmd再次输入"weditor --help" 应该就可以看到下图内容了

都安装完成之后,启动weditor,cmd输入命令:python -m weditor 来启动服务。

点击Connect连接,就会出现模拟器界面

如果出现这个提示, 则说明(没有连接上模拟器)或者(WEditor中的设备和端口号填错了)

如果出现"Traceback (most recent call last): File "C:\Users\wy158\AppData\Roaming\Python\Python311\site-packages\urllib3\connectionpool.py", line 787, in urlopen response = self._make_request( ^^^^^^^^^^^^^^^^^^^......"

这样一大堆错误, 或者刷新界面时, 老是出现"$ python -m weditor"错误,大概率是Appium与标准uiautomator2冲突,需要重新卸载安装,这个问ai就可以了, 因为每个人的步骤可能都不可能。

接下来就是如何定位元素了,元素定位方法和web差不多都是一样,如下图, 点击你要操作的地方,然后就会出现对应Xpath语法了,直接复制就可以拿来用了

相关推荐
蝎子莱莱爱打怪2 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅2 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒2 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11332 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透2 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦2 天前
nginx
运维·nginx
Gofarlic_oms12 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.2 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器
大大水瓶2 天前
HAProxy 从入门到实战:负载均衡与流量管理全解析
运维·负载均衡