环境搭建起来之后, 就可以开始移动自动化了. 但是使用自带的AVD开启模拟器, 速度实在太慢. 于是用夜神来做替代, 稍微能够有一些提速.
- 启动appuim
打开Appium,点击右上角Start按钮
输出如下信息, 表示启动成功
可以提前获取如下信息:
主机: 127.0.0.1:4723
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '23'
desired_caps['deviceName'] = 'Android Emulator'
2. 链接夜神模拟器
1). 首先启动夜神模拟器
2) 进入安装目录, 链接模拟器
注意:
如果夜神模拟器的adb版本和androidsdk的adb版本不一致,需将androidsdk中platform-tools目录下的adb.exe拷贝到模拟器的bin目录,并修改为nox_adb.exe
3. 获取package
在sdk/tools下面有个uiautomatorviewer.bat工具
启动以后的样子
左上角一共四个按钮,作用分别是打开本地文件、dump页面、dump压缩格式的页面、保存
选择第三个按钮的dump模式,右侧展示的是树的形式,看上去简介了很多,方便元素的查找和查看。
除此之外页面右侧还有列表的树形结构,点击任意控件可在右下方显示控件的详细信息,树形结构还支持搜索功能,不过搜索的是content-desc的内容。
4. 获取apk的activity
在apk/tools目录下有个工具hierarchyview.bat, 它可以获取设备当前页面的package和activity信息
其中,“com.Qunar”是对应的package,“com.mqunar.atom.hotel.ui.activity.HotelListActivity”是当前页面的activity
备用方案一:
hierarchy view经常连不上真机或者模拟器,无法获得activity,所以直接用 adb命令来查看当前运行的 activity
1、cmd命令中输入:adb shell 进入shell命令模式
2、shell中输入:logcat | grep ActivityManager 真机运行应用,可以实时 查看当前正在运行的Activity;
I/ActivityManager( 511): START u0 {act=Android.intent.action.INSERT dat=content
://com.example.notepad.provider.NotePad/notes cmp=com.example.android.notepad/.N
oteEditor} from pid 12896
cmp=com.example.android.notepad/.NoteEditor 中,
com.example.android.notepad 是包名, NoteEditor是当前活动的activity;
备用方案二:
在sdk\builds-tools\目录下, aapt是sdk自带的一个工具,命令行切换至该目录下, 运行aapt dump badging ***.apk, 在结果中可以找到package和activity的名字
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '23'
desired_caps['deviceName'] = 'Android Emulator'