本文介绍使用Appium,通过WiFi连接手机,实现对安卓手机的简单自动化的过程。虽然网上有大量类似文章,但几乎所有文章都多少有些缺点,例如只介绍某个步骤,或介绍的是停用的老旧版本,或者是某些关键步骤不详,或是存在冗余步骤。本文是我根据今年十一期间的安装经验所写,包含了完整流程,以及新手必坑指南。
本文不涉及脚本的具体写法,虽以Python为例,但也只有一个第三方包(Appium-Python-Client)与Python有关,若使用其他语言,只需跳过这一个包即可。
由于Appium只允许在电脑端运行脚本,所以每次对手机执行自动化时,需要通过USB或WiFi连接手机。而使用WiFi连接的方式,在配置上并不会增加多少麻烦,故本文一步到位,直接介绍WiFi连接方法。
本文可分为两个部分:
第一部分介绍安装在电脑端的程序:Java JDK、Android Studio的SDK、Appium Inspector、UiAutomator2及Appium-Python-Client。
第二部分介绍连接手机方式,包括所用到的命令。
在Windows的”开始“中搜索”编辑环境变量“
点击“环境变量”
点击“新建”,输入图中选中行的内容:变量名为"JAVA_HOME",值为jdk所在路径。
点击“新建”,在弹出的对话框中输入新建变量名为"JAVA_HOME",值为jdk的安装路径。
然后点击上图中的"Path",将"%JAVA_HOME%\bin"加入其中(见下图)。
点击“新建”,输入途中选中行的内容
设置环境变量是为了在命令提示符下操作的便捷性
完成这一步就已经安装完成了,后续步骤是首次启动Android Studio后安装相关组件。
在More Actions中找“……管理器”
可能不需要安装(未验证)
在SDK Tools标签下下载这些组件
安装成功后,打开SDK文件夹,检查是否有下图中选中的两个文件夹。可将这两个文件夹配置为环境变量。配置环境变量不是必须的。若没有配置环境变量,在使用命令行时,需先进入对应的路径,操作上稍显繁琐。
两个最有用的工具包
注意:在执行自动化时,不要打开Android Studio,不要创建虚拟设备。否则后续会出现找不到的设备的错误。后面将会看到,安装它的目的,仅在于在命令行提示符中执行几条命令,而不是在打开Android Studio后做什么操作(Android Studio的主要功能是开发APP)。
当前许多指南文章中,仍是从安装Appium Desktop开始。实际上,Appium Inspector已经从Appium Desktop分离出来,所以这里我们只安装Appium Inspector。
注意:不建议安装Appium Desktop,也不建议从Appium Desktop中打开Appium Inspector,这同样会导致连接失败,而解决方法就是关闭Appium Desktop。
安装下面两个包
pip install Appium-Python-Client
pip install UiAutomator2
注意:UiAutomator2包是任何语言都必要的包。
D:
cd D:\Android\Sdk\platform-tools
adb shell ip -f inet addr show wlan0
下面信息中inet后的ip即为手机ip。
32: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 3000inet 192.168.10.154/24 brd 192.168.10.255 scope global wlan0valid_lft forever preferred_lft forever
adb tcpip 5555
返回restarting in TCP mode port: 5555则代表服务开启成功,可以拔掉数据线断开电脑和手机的连接。
adb connect 192.168.10.154:5555
返回connected to 192.168.10.154:5555则表示成功。
adb devices
如下信息显示同一设备同时通过USB和WiFi连接成功。
List of devices attachednb9xwwjzpvlrtcc6 device product:cannon model:M2007J22C device:cannon transport_id:104192.168.10.154:5555 device product:cannon model:M2007J22C device:cannon transport_id:105
将下列参数批量输入大括号中:
"platformName": "Android", "appium:deviceName": "Any", "appium:appPackage": "com.eg.android.AlipayGphone", "appium:appActivity": "com.eg.android.AlipayGphone.AlipayLogin", "appium:noReset": "true", "appium:automationNamefullReset": "false", "appium:automationName": "UiAutomator2", "appium:skipServerInstallation": true
其中appPackage和appActivity是目标App的信息,例如,要操作支付宝,则输入上面信息。关于如何查找其他App的此类信息,可自行百度。
skipServerInstallation设置为true,可忽略某些手机连接Appium后,一直要求重新安装Appium组件的问题。
将上述参数保存,以便后续使用。也可在Appium Inspector左侧Capability Builder修改参数。
appium --allow-cors
显示如下信息。稍后,会继续显示出更多信息。
[Appium] Welcome to Appium v2.11.5[Appium] Non-default server args:[Appium] { allowCors: true}
[4b578de3][AndroidUiautomator2Driver@b39f] Replacing sessionId f3e737db-8108-4c33-ab56-bce3c1abc63e with 4b578de3-0a12-4657-8d91-816da479668d[4b578de3][HTTP] <-- GET /session/4b578de3-0a12-4657-8d91-816da479668d/source 200 1879 ms - 75318
可使用任意一种方式在电脑端启动编写好的Python自动化脚本。