Appium之获取app的package和activity以及UI界面定位方法

简介: 一、获取APP的package(包名)和activity在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法:1.

一、获取APP的package(包名)和activity

在使用android自动化测试工具monkeyrunner和appium中启动应用时,需要填写被测程序的包名和启动的Activity,以下有几种查看应用包名package和入口activity名称的方法:

1.使用aapt//aapt是sdk自带的一个工具,在sdk\builds-tools\目录下

>以手机淘宝APK为例,CMD切换到aapt.exe目录执行:aapt dump badging D:\work\appium\shoujitaobao_174.apk (放置手机淘宝APK的位置)

>运行后的结果中以下两行分别是应用包名package和入口activity名称

package: name=’com.taobao.taobao’

img_ae3271eaff44a361db730b82a4d3e5ff.png
package

launchable-activity: name=’com.taobao.tao.welcome.Welcome’

img_6a8dd275c897e493e14961be95f7c1c5.png
activity

注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。

2.各种权限都开启,使用sdk/tools目录下hierarchyviewer.bat 工具可以获得(可以查看对应的app的activity)

img_cf2aeb2366a10b326f28cfdec256adf8.png
hierarchyviewer

3.通过在CMD窗口中执行adb logcat -v time -s ActivityManager查看对应的字段

在CMD窗口中执行adb logcat -v time -s ActivityManager,然后在模拟器或者手机中点击应用进入,如点击系统设置,进入后会有相应的日志信息打印出来,在信息中查找 cmp=com.android.settings/.Settings

二、SDK-tools元素定位工具

1.adroid-sdk的安装目录tools下有1个自带的工具uiautomatorviewer,打开后,如下所示:

img_8d11fb5854da8a1b1bcd3eba89140a5b.png
uiautomatorviewer元素定位
img_7dc5ca7549825886efa6a7280a0157ab.png
UI定位界面

2.首先在模拟器或者真机上打开APP软件,进入主界面,然后点击uiautomatorviewer软件左上角的手机图标,如下图

img_bb7be3f712c9812d386bc662803193bf.png
UI工具连接APP

得到的界面如下,选中元素即可看到元素的layout信息,比如下方的定位框即可以通过ID来定位,也可以通过Xpath来定位

img_4f73bf3e4bc13b024a4a6a6c5280cc98.png
UI工具定位APP

三、appium自带的Inspector元素定位工具

Appium Inspector 是 appium 自带的一个元素定位工具。appium Inspector 的 winddows 版本不太好用,但是 Mac 上的功能还是很强大的,一般mac 上用的比较多。

1.设置appium的Android Settings,点击左上角的安卓图标进入安卓设置,注意设置时不要开启appium,也就是不要点击appium右上角的“三角形”按键

img_621a7f0859fd2f9ca20f46acf1bc26f1.png
Android Settings

说明:

a)Application是对应的应用,用Path的话不管你有没有这个应用,都是重新安装一遍,所以这里直接用了应用的包名和activity;

b)Launch AVD是将要定位的机器,这里选的是模拟器;

2.开启appium,点击右侧的launch(三角形图标按键)开启,然后点击appium上的inspector来进行定位,使用inspector上的refresh可以刷新成当前模拟器的页面(如果当前没有开开任何的安卓模拟器,点击refresh时,他会根据要Android settings中的launch device打开一个模拟器)

img_c321015a6cd5a1f1586bbef366da2536.png
设置apk路径并开启appium
img_2bcda6cc4bfa21b3275f8888fa7e3db2.png
Ispector Window

3.可能出现的异常

在使用Ispector过程中,你会发现经常会报以下这个错误,每次启动都会给你手机上重新安装一次应用,并且不能用鼠标指定某个元素,没有uiautomatorviewer使用方便。这里建议大家使用uiautomatorviewer的定位方式

img_f0755ee51510ca0826cbfbb128656b83.png
Ispector异常界面

四、元素定位方法

1.格式:find_element_by_定位方式(value)

通过id定位:driver.find_element_by_id("xxx")

通过class_name定位:driver.find_element_by_class_name("android.widget.RelativeLayout")

通过xpath定位:driver.find_element_by_xpath("//android.widget.LinearLayout[1]/android.widget.XXX")

通过name定位:driver.find_element_by_name()

通过text定位:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"+关注\")")

其他定位方法见请参考【每天1990】的博客,感谢分享

目录
相关文章
|
11月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
688 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
11月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
1392 0
|
11月前
|
人工智能 供应链 监控
执行决策UI:一种更快观察、定位、决策和打破竞争对手的惊人方式
本文提出为高管打造类似战斗机驾驶舱的敏捷决策界面,基于OODA循环(观察、定位、决策、行动、调整),整合AI与数据分析,实现快速、精准的执行决策,助力企业在复杂环境中高效应对变化。
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
347 0
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
698 1
|
定位技术 容器
48.[HarmonyOS NEXT RelativeContainer案例五] 精确表单布局:辅助线定位技术打造专业级UI
在HarmonyOS NEXT的UI开发中,表单是常见且重要的界面元素。创建对齐精确、布局合理的表单需要精细的定位控制。RelativeContainer提供的辅助线(Guideline)功能,为表单布局提供了强大的支持。本教程将详细讲解如何使用RelativeContainer的辅助线功能实现精确的表单布局,帮助你掌握这一专业级UI技术。
321 7
|
API Go 网络架构
【Azure Logic App】特殊的方法来停止正常步骤无法停止的Workflow Job
本文介绍了一种特殊方法,用于解决标准版Logic App在异常情况下无法正常停止的问题。当点击Cancel按钮报错“WorkflowRunCanNotBeCancelled”时,可通过以下步骤解决:进入Logic App的Kudu页面,定位到`C:\home\site\wwwroot`目录下的`host.json`文件,添加`Jobs.SuspendedJobPartition`和`Jobs.CleanupJobPartition`参数,并以大写格式设置值为`"<WORKFLOWID>:2D<RUNID>"`。调整后可成功停止异常Job
418 18
|
存储 JavaScript
(ERP系统查看DWG)MxCAD APP调用内部弹框的方法
MxCAD APP 二次开发提供了调用项目内部弹框的接口,以保持样式统一。用户需创建 `test_dialog` 文件夹并依次创建 `dialog.ts`、`dialog.vue` 和 `index.ts` 文件来注册、构建和渲染弹框。通过 `useDialogIsShow` 钩子函数控制弹框显示,并可在方法中直接调用 `dialog.showDialog()` 来控制弹框显隐。此外,还支持监听确认或取消事件获取数据,以及通过配置 `vite.config.ts` 解决样式冲突问题。最终在 `src/index.ts` 中引入相关文件即可实现弹框功能。
|
人工智能 编解码 自然语言处理
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
Aria-UI 是香港大学与 Rhymes AI 联合开发的多模态模型,专为 GUI 智能交互设计,支持高分辨率图像处理,适用于自动化测试、用户交互辅助等场景。
797 11
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
|
存储 JSON JavaScript
WEB CAD插件通过上下文对象MxPluginContext修改UI界面的方法
本文介绍了如何使用MxPluginContext动态控制MxCAD项目的UI界面。通过该上下文对象,开发者可以灵活设置UI配置,如控制操作栏显隐、编辑按钮、添加侧边栏等。具体方法包括调用`getUiConfig()`获取并修改`mxUiConfig.json`中的属性,实现界面的定制化。此外,还提供了控制命令行聚焦的功能,解决输入框焦点锁定问题。详细代码示例和效果对比图展示了具体实现步骤,帮助开发者更好地适配项目需求。

热门文章

最新文章