前言
前面环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神通。小编这里主要给大家推荐一个sdk自带的实用工具aapt.
aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity,当然还有更多的功能,有兴趣的可以查看相关资料。
一、下载aapt
1.在android-sdk里面双击SDK-manager,下载buidl-tools
2.勾选build-tools,随便选一个版本,我这里选的是24的版本
3.下载完成后,在D:\androidsdk\android-sdk-windows\build-tools\24.0.0目录下找到aapt.exe,将这个路径设置环境变量,添加到path下
4.打开cmd。输入aapt出现如下界面,说明环境OK了
二、获取apk包名
1.将准备测试的APK放到D盘某个目录,如D:\test
2.打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名,如手机淘宝.apk)
3.以手机淘宝.apk为例,如下图
4.这里就可以看到apk的包名:com.taobao.taobao
注:老司机可以直接把apk放在桌面上,输入指令后拖到cmd框
三、获取launcherActivity
1.接着上一步操作,cmd屏幕拖到中间l找到auncherActivity
2.这里可以看到,淘宝的launcherActivity值为com.taobao.tao.welcome.Welcome
四、写脚本
1platformName:这里是android的apk
2.deviceName:手机设备名称,通过adb devices查看
3.platformVersion:android系统的版本号
4.appPackage:apk包名
5.appActivity:apk的launcherActivity
五、运行appium
1.启动appium,右上角点三角形按钮,变成正方形,就是启动状态。
2.确认手机连上电脑
3.在pycharm运行脚本,随后在手机上会弹出安装下面两个软件的提示,安装后,桌面上多两个图标。那么恭喜你启动成功!
4.接着会看到淘宝app已经启动
六、最终代码如下
# coding=utf-8
from appium import webdriver
desired_caps = {
'platformName': 'Android',
'deviceName': '30d4e606',
'platformVersion': '5.0',
# apk包名
'appPackage': 'com.taobao.taobao',
# apk的launcherActivity
'appActivity': 'com.taobao.tao.welcome.Welcome'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
这个地址是怎么来的呢?
环境搭建好了,下一步元素定位,元素定位本篇主要介绍如何使用uiautomatorviewer,通过定位到页面上的元素,然后进行相应的点击等操作.
uiautomatorviewer是android-sdk自带的一个元素定位工具,非常简单好用,使用uiautomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性。
七、启动uiautomatorviewer.bat
1.打开目录D:\androidsdk\android-sdk-windows\tools
2.双击启动,启动之后出现如下界面
3如果不喜欢双击启动的话,也可以在cmd里面通过指令启动
先cd到tools目录下,然后输入uiautomatorviewer.bat回车后启动服务
八、连接手机
1.cmd打开输入adb devices,确认手机已连上
2.打开手机淘宝页面,让屏幕处于点亮状态
3.点左上角安卓机器人按钮Devices Screenshot按钮刷新页面
九、定位元素
1.移动鼠标到需要定位的元素上,如搜索输入框
2.右下角可以看到元素对应的属性
text:搭配新宠不能缺
resource-id:com.taobao.taobao:id/home_searchedit
class:android.widget.EditText
十、点搜索框
1.前面一篇启动app后,休眠五秒,等待页面加载完成
2.通过id来定位到搜索框,然后点击
# coding=utf-8
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': '30d4e606',
'platformVersion': '5.0',
'appPackage': 'com.taobao.taobao',
'appActivity': 'com.taobao.tao.welcome.Welcome',
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 休眠五秒等待页面加载完成
time.sleep(5)
driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()
十一、元素定位
1.appium的webdriver提供了11种元素定位方法,在selenium的基础上扩展了三个,可以在pycharm里面输入driver.find_element_by然后会自动匹配出来
2.多的三种如下,在后面的会详细介绍
driver.find_element_by_accessibility_id()
driver.find_element_by_android_uiautomator()
driver.find_element_by_ios_uiautomation()
(第三个是ios的可以暂时不用管)
uiautomatorviewer是android sdk自带的,下篇介绍appium自带个元素定位工具