一、通过USB和wifi连接真机
1. 数据线连接手机并允许调试 cmd命令行执行:adb devices (能查看到设备就可以进行编写自动化脚本步骤了,如果在USB接触不良的情况下,可以执行下面步骤进行无线连接设备)
List of devices attached
axxxxx20 device
2. 执行以下命令分配ip port(5558未被占用):adb -s axxxxx20 tcpip 5558
restarting in TCP mode port: 5558
3. 执行使用端口连接手机(192.168.xx.xx手机的ip地址):adb connect 192.168.xx.xx:5558
connected to 192.168.xx.xx:5558
4. 拔掉数据线,查看已用wifi连接的设备:adb devices
List of devices attached
192.168.xx.xx:5558 device
二、编写第一个脚本
1、获取appPackage & appActivity
在CMD命令行输入adb shell 进入adb命令行模式
在adb命令行输入:logcat | grep ActivityManager ;在启动应用,找到关键字Displayed,关键字后面即为appPackage + appActivity
2、启动appium-desktop定位元素
下载地址:https://github.com/appium/appium-desktop/releases
定位元素
定位元素后,点击Tap模拟手动点击按钮
在安卓7.0及以上版本,左侧图无法refresh,需要增加 desired_caps['automationName'] = 'UIAutomator2'
3、编写脚本
# coding=utf-8 from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC # appium服务监听地址
server = 'http://localhost:4723/wd/hub' # localhost为本机;4723为端口;/wd/hub可以看成是规定的默认地址
# app启动参数
desired_caps = {
"platformName": "Android", # platformName:使用哪个移动操作系统平台;iOS,Android或FirefoxOS
"deviceName": "dfc147f8", # deviceName:使用的移动设备或模拟器的种类
"appPackage": "com.cdsg.zgph", # appPackage:你想运行的Android应用程序的Java包(仅限Android使用)
"appActivity": ".activity.MainActivity" # 要从包中启动的Android活动的活动名称。(仅限Android使用)
}
# 驱动
driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)
# 获取权限同意按钮
permission_btn = wait.until(EC.presence_of_element_located((By.ID, "com.android.packageinstaller:id/permission_allow_button")))
# 点击权限同意按钮
permission_btn.click()