本来以为连接真机跟连接模拟器差不多,结果参考了很多文章之后发现大家说的都对,但是细节没串起来,所以我这里做个笔记,描述一下所有流程的细节。
看这篇文章可能有个小前提,就是你会用appium连接模拟器并且已经玩过了(例如写过计算器的加减乘除脚本并且运行成功)。没玩过模拟器的话可能会出现一些报错,这个可能就属于一些基本错误了,需要先百度解决后再往下看文章。
1、安卓手机通过USB连接电脑,电脑会自动完成电脑和手机上的驱动安装,然后打开手机的开发者模式(不同手机打开方式不同,需百度)。开启“USB调试”、“USB安装”、“USB调试(安全模式)”。
2、修改USB配置,选择“USB配置”为“MIDI”模式(注意不是MTP,不是MTP,不是MTP!)
3、python脚本编写。
①“deviceName”获取命令:adb.exe devices
②“platformVersion”获取命令:adb.exe shell getprop ro.build.version.release
③“appPackage”和“appActivity”获取命令 :adb.exe shell ,然后输入 dumpsys window windows | grep -i current,返回数据中u0 后面的com.xxxxxx就是当前界面的Package,再往后斜杠后面的就是当前的Activity
from appium import webdriver
from time import sleep
import unittest
driver=None
class ZhenJiTest(unittest.TestCase) :
@classmethod
def setUpClass(cls):
device = {}
device['deviceName'] = 'b4c4b802'
device['platformName'] = 'Android'
device['platformVersion'] = '9'
device['appPackage'] = 'com.miui.calculator'
device['appActivity'] = 'com.miui.calculator.cal.CalculatorActivity'
device['noReset'] = True
global driver
# 启动模拟器
driver = webdriver.Remote("http://localhost:4723/wd/hub", device)
def testBaiduSearch(self):
global driver
sleep(10)
@classmethod
def tearDownClass(cls) :
global driver
driver.quit()
if __name__ == "__main__":
unittest.main(verbosity=2)
4、运行代码,如果你之前没有成功连接过真机,手机上就会跳出三个确认框,都点击继续安装,如果不弹出,估计是报错了。
第二个和第三个的区别是第三个的名称最后有个 “.test”。
5、成功打开手机计算器。
连接真机完成
如果遇到什么问题请在下方留言。