Appium自动化获取APP包名和启动Activity

如图1所示,配置AAPT环境

  • AAPT在SDK里是存在的,只需要配置一个环境变量,首先找到aapt.exe这个文件,一般这个文件在SDK目录下的构建工具这个文件夹下面,我的目录是d:\ Android的\ android- SDK \构建工具\ 28.0.1

  • 复制这个文件的路径,添加到环境变量中的路径中,然后CMD输入AAPT,如果出现下图内容,说明配置成功

2,查看APP的包名以及启动的活动

  • cmd输入aapt dump badging C:\ Users \ wb-xq421525 \ Desktop \ huanan.apk

  • 这就是APP启动的活动,活动里面包含包名。
### 获取 Android 应用的当前界面Appium 自动化测试中,获取 Android 应用的(package name)当前界面activity name)是常见的需求,尤其是在进行跨应用操作或调试时。可以通过多种方式实现这一目标。 #### 使用 ADB 命令获取当前 Activity 信息 一种常见方法是通过 ADB(Android Debug Bridge)命令来获取当前前台应用的 Activity 称。执行以下命令可以查看当前聚焦的应用信息: ```bash adb shell dumpsys window windows | findstr mFocusedApp ``` 该命令会输出类似如下的内容: ``` mFocusedApp=ActivityRecord{... u0 com.example.app/.MainActivity} ``` 其中 `com.example.app` 是应用的,`.MainActivity` 是当前的 Activity 称 [^2]。 #### 使用 Appium API 获取当前 Activity Appium 提供了直接获取当前 Activity 的方法 `current_activity`,它返回当前应用所在的 Activity 称。例如: ```python current_activity = driver.current_activity print("Current Activity:", current_activity) ``` 该方法适用于获取当前正在运行的界面称 [^2]。 #### 获取当前应用的 同样地,Appium 提供了 `current_package` 方法用于获取当前应用的: ```python current_package = driver.current_package print("Current Package:", current_package) ``` 此方法可用于确认当前操作的应用是否为目标应用 。 #### 使用 Logcat 过滤 LAUNCHER Intent 获取入口 Activity 另一种方式是通过 Logcat 过滤 `android.intent.category.LAUNCHER` 来查找启动Activity: ```bash adb logcat | grep "android.intent.category.LAUNCHER" ``` 这种方式可以在日志中找到与主界面相关的 Intent 信息,从而识别出入口 Activity [^4]。 #### 反编译 APK 查看 AndroidManifest.xml 对于未安装的应用,也可以通过反编译 APK 文件并查看 `AndroidManifest.xml` 来获取入口 Activity 称。使用工具如 `apktool` 可以完成反编译操作,并在 `AndroidManifest.xml` 中查找含 `android.intent.action.MAIN` `android.intent.category.LAUNCHER` 的 `<activity>` 标签,其 `android:name` 属性即为入口 Activity 称 [^1]。 ### 示例代码:获取当前 Activity ```python from appium import webdriver # 初始化 driver(示例配置) desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', 'appPackage': 'com.example.app', 'appActivity': '.MainActivity' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 获取当前 current_package = driver.current_package print("Current Package:", current_package) # 获取当前 Activity 称 current_activity = driver.current_activity print("Current Activity:", current_activity) # 关闭 driver driver.quit() ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值