本來以爲連接真機跟連接模擬器差不多,結果參考了很多文章之後發現大家說的都對,但是細節沒串起來,所以我這裏做個筆記,描述一下所有流程的細節。
看這篇文章可能有個小前提,就是你會用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、成功打開手機計算器。
連接真機完成
如果遇到什麼問題請在下方留言。