通过USB和wifi连接真机&编写第一个脚本
一、连接手机
1、通过usb数据线连接手机
数据线连接手机并允许调试 cmd命令行执行:
adb devices
如果没有显示device信息,请检查:
- 手机是否开启usb调试
- 更换数据线(华为手机)
2、无线连接手机
将电脑与手机处于同网络环境
执行下面命令给手机分配port:
adb -s 设备名称 tcpip 分配端口号
注意:分配的端口号不能被占用
执行下面命令连接手机
adb connect 手机ip:分配的端口号
拔掉数据线,重新开启usb调试,查看设备:adb devices
二、编写第一个脚本
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()