Appium测试之获取appPackage和appActivity

appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的。那如何快速的获取这APP的这两个参数呢?我这里介绍两个方法。

 import org.openqa.selenium.remote.DesiredCapabilities;
  import java.net.MalformedURLException;
  import java.net.URL;
  import io.appium.java_client.android.AndroidDriver;
  public class appiumZhihu {
      public static void main(String[] args) throws MalformedURLException, InterruptedException {
          DesiredCapabilities capabilities = new DesiredCapabilities();
          capabilities.setCapability("deviceName", "Android Emulator");
          capabilities.setCapability("automationName", "Appium");
          capabilities.setCapability("platformName", "Android");
          capabilities.setCapability("platformVersion", "6.0");
          capabilities.setCapability("appPackage", "??");  
          capabilities.setCapability("appActivity", "??");  
          AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
      }
  }

方法一

首先,你要有一个APP的安装包 xxx.apk,

然后,通过这个解压工具将.apk解压。如下:

 通过notepad++ 打开AndroidManifest.xml 文件,在里面搜索:manifest对应的就是appPackage。 

搜索:activity对应的就是appActivity。(activity关键字很多,你要注意辨别。)

 

方法二

这种方法也比较简单,主要针对你没有.apk包的情况,比如Android原生自带的APP(计算器、通讯录、短信...),可以通过adb 命令。

1,打开APP。

2,执行> adb logcat>D:/log.txt

3, 胡乱的对APP做一些操作。

4, Ctrl+c 结束adb命令。

5, 打开log.txt文件,搜索:Displayed 

 appPackage:   com.android.messaging

adb shell dumpsys window windows | findstr mFocusedApp

appActivity:.ui.conversationlist.ConversationListActivity

方法三 

使用 adb 命令,首先在android手机或模拟器上打开App。输入下面的命令。

方法四

评论所提供的方法,使用aatp命令。我的aapt工具位于“D:\android\SDK\build-tools\28.0.3\aapt.exe” 目录。

  D:\android\SDK\build-tools\28.0.3> aapt dump badging d:\\test.apk
​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Milvus Cloud:打造向量数据库的Airtable级体验

向量数据库Milvus Cloud是一种用于处理和存储向量数据的数据库,它通常用于机器学习、图像和视频检索、自然语言处理等领域。要将其升级为类似Airtable那样易用且一体化的系统,需要考虑以下几个关键方面: 1. 用户界面(UI)设计 Airtable之所以用户友好,很大程度上归功于其直…

架构每日一学 4:成为首席架构师,你必须学会顺应人性

本文首发于公众平台:腐烂的橘子 架构师生存法则之二:架构活动需要顺应人性 程序员入行的第一天起就进入了一个机器的世界。在别人的眼中,程序员平时很少说话,更多的时间在和电脑打交道。 程序员工作时间久了大脑会被格式化&…

【JS 的数据类型】

JS 的数据类型 基本数据类型 js有8种基本数据类型,分别为:undefined、number、Object、null、Symbol、Boolean、String、BigInt; 其中Symbol和BigInt是ES6新增的数据类型: ● Symobol代表独一无二的值,可以用来代表对…

Fastchat + vllm + ray + Qwen1.5-7b 在2080ti 双卡上 实现多卡推理加速

首先先搞清各主要组件的名称与作用: FastChat FastChat框架是一个训练、部署和评估大模型的开源平台,其核心特点是: 提供SOTA模型的训练和评估代码 提供分布式多模型部署框架 WebUI OpenAI API Controller管理分布式模型实例 Model Worker是大模型服务…

万物互联:塑造未来的新篇章

在科技日新月异的时代,万物互联(IoE)作为一项前沿技术,正在以前所未有的速度改变着我们的世界。万物互联不仅将各种设备和物体连接在一起,更重要的是,它正在推动技术的飞速发展,塑造着未来的新篇…

docker 容器无法直接读取宿主机文件

最近一个需求, 要在后端直接使用代码直接生成 pdf 文档, 由于使用的 apache 的工具包, 该工具包无法直接解析中文字体, 需要导入外部 中文插件包, 相关代码如下: PDPage page new PDPage(PDRectangle.A4);document.addPage(page);PDFont fontFile PDType0Font.load(document…

【c++】全面理解C++多态:虚函数表深度剖析与实践应用

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,通过本篇文章,来详细理解多态的内容 目录 1.多态的定义及实现1.1多态的构成条件1.2虚函数的重写1.3 C11 override 和 final1.4重载、覆盖(重写)、隐藏…

智能驱动,精准管理:打造高效干部管理系统

干部管理系统是现代组织管理中不可或缺的工具,它通过信息技术的应用,提高了干部管理的效率和准确性。干部管理系统的主要功能包括: 1. 信息管理:系统可以存储和管理干部的个人信息,包括基本资料、工作经历、教育背景、…

静态IP设置:小白必看攻略

在现代网络环境中,IP地址是连接互联网的基石。它就像网络世界中的门牌号,让数据能够在庞大的网络海洋中准确找到目标。其中,静态IP地址由于其固定不变的特性,在某些特殊应用场景下尤为重要。那么,如何设置静态IP地址呢…

鸿蒙开发接口Ability框架:【@ohos.wantAgent (WantAgent模块)】

WantAgent模块 WantAgent模块提供了触发、取消、比较WantAgent实例和获取bundle名称的能力,包括创建WantAgent实例、获取实例的用户ID、获取want信息等。 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标…

深入理解JavaScript事件循环Event Loop:宏任务与微任务的奇幻之旅

🔥 个人主页:空白诗 文章目录 🎉 引言🌟 什么是事件循环?📚 「宏任务」 vs 「微任务」「宏任务」(Macrotask)「微任务」(Microtask)实际应用中的注意事项 🔀 执行流程概览📝 代码示例…

八款免费好用的3D建模AI工具,让你的设计更简单!

随着人工智能和大语言模型的不断发展,AI工具正逐渐渗透到3D建模领域中。传统上,3D建模师需使用如3ds Max、Maya等这类复杂的3D建模软件,投入大量的时间与精力来创作精细的模型。然而,有了AI工具的辅助,设计过程不仅对专…

算法学习笔记(2)-前缀和

##前缀和 指的是某序列的前n项和,在数学上我们可以理解称为数列的前n项和。前缀和是一种预处理,用于降低查询的时间复杂度。 ##一维前缀和 有一个一维数组x和该数组的前缀和数组y,则x和y具有以下关系: #python代码示例 #关系&am…

美国成立AI安全委员会:马斯克与扎克伯格被排除,权力游戏引热议!

2024年人工智能(AI)安全与监管的复杂性及其背后的权力、利益和道德问题,首先介绍了美国国土安全部成立的AI安全与安全委员会,以及两位人工智能领域巨头埃隆马斯克和马克扎克伯格被排除在外的现实,从权力和利益的角度分…

Vulnhub靶机随笔-Hacksudo_Aliens

Vulnhub靶机Hacksudo_Aliens详解 攻击机Kali IP:192.168.3.44 靶机 IP:未知 系统:未知 A.信息收集 扫描靶机存活性 确定IP地址 1.命令:arp-scan -l 扫描靶机开放端口及其服务版本信息 2.命令 nmap -A -p- -sV 靶机IP地址 靶机开放三个端口,22ssh端口,80web端…

Paper Digest | 基于原型学习的实体图谱预训练跨域推荐框架

欢迎大家在 GitHub 上 Star 我们: 分布式全链路因果学习系统 OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE 大模型驱动的知识图谱 OpenSPG: https://github.com/OpenSPG/openspg 大规模图学习系统 OpenAGL: https://github.com/TuGraph-…

【git】通过JetNrains IDE对git的操作

应该适用于所有jetbrains产品。 一、拉取(pull)代码 上方工具栏-Git-克隆。然后填写git地址与本地存放地址。 二、搁置 修改代码后搁置代码(不提交,但是也不撤销已修改的代码,把它暂存起来)。 界面的左上角。1->2->3。完事就可以写换到其他分支肆意妄为^^。 三…

Vue项目npm install certificate has expired报错解决方法

1.Vue项目 npm install 安装依赖突然报错: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/zrender/download/zrender-4.3.0.tgz failed, reason: certificate has expired npm ERR! A com…

数据是形成新质生产力的优质生产要素

在数字经济背景下,新质生产力以科技创新推动产业创新为要义,以大幅提升全要素生产率为目标,重在加强人工智能、大数据、物联网、工业互联网等数字技术的融合应用,以数据开发利用为引擎促使生产要素实现创新性配置,催生…

探针流量检测与回溯分析,解密AnaTraf网络流量分析仪的神奇魅力

目录 导言 概述 流量检测探针 流量回溯分析 网络故障解决案例 了解更多 导言 在当今互联网时代,网络性能监测与诊断成为企业发展的关键。为了解决网络故障和提升网络性能,AnaTraf网络流量分析仪应运而生。本文将详细介绍AnaTraf的功能和优势&#…