移动端自动化测试--2、定位APP
正常情况下:
adb shell dumpsys window | findstr mCurrentFocus
就能找到APP,但是,不怕一般,就怕不一般
对于一个不懂的我来说,有太多盲区,太多坑,咱一一说:
1、报错
Failed to create session. An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'D:\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s 8727b641 shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Exception occurred while executing 'delete':
原因:问题出在没有足够的权限去修改系统设置。具体来说,WRITE_SECURE_SETTINGS 权限未被授予,因此无法删除 hidden_api_policy_pre_p_apps 的设置
解决:这两个权限打开(需要手机插入SIM卡)
2、报错:。。。一大堆,精华就是java.lang.SecurityException: Permission Denial: starting Intent...not exported
原因:问题是由于启动的 Activity 没有导出(not exported),因此 Appium 无法成功启动该应用
解决:确保你要启动的 Activity 在应用的 AndroidManifest.xml 文件中是可导出的。你需要在该 Activity 的声明中添加 android:exported=“true” 属性
然而,这个只适用原生,开发说:我们使用RN,无法加
然后,尝试使用Appium Inspector 或类似工具查看应用的 Activity 列表,确认哪些 Activity 是可导出
方法:
adb shell dumpsys package com.org.*****
如上图,找到了!!!
然后定位到APP了,终于连上!!