1、安装Appium
2、安装client编程库
自动化程序需要调用客户端库和 Appium Server 进行通信。
用pip安装:pip install appium-python-client
3、安装Appium Server
Appium Server 是用 nodejs 运行的,基于js开发出来的。
Appium组织为了方便大家安装使用,制作了一个可执行程序 Appium Desktop,(Appium Desktop官方下载:https://github.com/appium/appium-desktop/releases/tag/v1.18.0-2)
把 nodejs 运行环境、Appium Server 和一些工具 打包在里面了,只需要简单的下载安装就可以了。
链接:https://pan.baidu.com/s/1okAYwfnUaFcCm0A18Mq-Mw
提取码:bgod
4、安装JDK
上面给出的百度网盘连接 下载安装: jdk-8u211-windows-x64.exe
安装好之后,还需要添加一个环境变量 JAVA_HOME
,指定 值 为 jdk安装目录
JAVA_HOME d: oolsjavajdk1.8.0_211
5、安装 Android SDK
对于安卓APP的自动化,Appium Server 是需要 Android SDK的。
因为要用到里面的一些工具,比如 要执行命令设置手机、传送文件、安装应用、查看手机界面等。
上面给出的百度网盘连接 下载最新的 Android SDK文件包: androidsdk.zip
,并且解压,即可
解压完成后,需要 配置一下 添加一个 环境变量 ANDROID_HOME
,设置值为sdk包解压目录,比如 d: oolsandroidsdk
另外,还推荐大家配置环境变量 PATH ,加入 adb所在目录, d: oolsandroidsdkplatform-tools
注意:是 添加
该目录到环境变量PATH中, !!!不是替换!!!
,否则会导致系统命令都找不到的严重后果
6、
连接手机
述的软件环境都准备好以后,要自动化手机APP,需要:
-
在你运行程序的电脑上 用 USB线 连接上 你的安卓手机
-
进入
手机设置
->关于手机
,不断点击版本号
菜单(7次以上), -
退出到上级菜单,在开发者模式中,启动USB调试
如果手机连接USB线后,手机界面弹出 类似 如下提示。(选择 允许USB调试)
注意:
有的手机系统,可能需要一些额外的选项需要设置好。
比如,有的手机,开发者选项里 需要打开 允许通过USB安装应用
等。
总之,给USB开发调试 尽可能方便的控制手机。
连接好以后,打开命令行窗口, 执行 adb devices -l
命令来列出连接在电脑上的安卓设备。
表示电脑上可以查看到 连接的设备,就可以运行自动化程序了。
7、一个例子
运行代码前,要先 运行 Appium Desktop
再运行代码:
查找 应用 Package 和 Activity
没有apk (已经发布上线,然后可以打开应用,输入命令去查看你要获取的package跟Activity的信息)
如果你应用已经安装在手机上了,可以直接打开手机上该应用,进入到你要操作的界面
然后执行:adb shell dumpsys activity recents | find "intent={" (就是查看最近时间的一些应用)
会显示如下,最近的 几个 activity 信息,
其中第一行就是当前的应用,我们特别关注最后
应用的package名称就是 tv.danmaku.bili
应用的启动Activity就是 .ui.splash.SplashActivity
有apk(还没有发布上线,只下载安装包,作为一个内测)
如果你已经获取到了 apk,在命令行窗口执行:(黄色部分,aapt.exe的一个路径;橙色部分,是bili安装包的一个路径)
获取package名称:
d: oolsandroidsdkuild-tools29.0.3aapt.exe dump badging d: oolsapkili.apk | find "package: name="
输出信息中,就有应用的package名称
package: name='tv.danmaku.bili' versionCode='5531000' versionName='5.53.1' platformBuildVersionName='5.53.1' compileSdkVersion='28' compileSdkVersionCodename='9'
获取Activity名称:
d: oolsandroidsdkuild-tools29.0.3aapt.exe dump badging d: oolsapkili.apk | find "launchable-activity"
输出信息中,就有应用的启动Activity
launchable-activity: name='tv.danmaku.bili.ui.splash.SplashActivity' label='' icon=''
或者执行:
adb shell dumpsys window windows | findstr mFocusedApp (待校验)