Appium適配Android7.0以上版本
- 測試機型: 華為榮耀V9
- 安卓版本: Android7.0
- appium版本: 1.65
說明:
公司新采購了一批安卓機器鞭衩,拿了其中一臺華為榮耀V9跑之前寫的測試用例,發(fā)現(xiàn)每次登陸以后進(jìn)入到MainActivity了之后,==元素就獲取不到了==,試了一下==driver.page_source==也是報了超時哺眯。本能反應(yīng)是==Android7.0==的問題猪钮,于是去testerhome搜了巨多安卓7.0的東東。找到了一些頭緒肝陪。
感謝一下這位meil000小伙伴的分享~~
可以看到他說的3個關(guān)鍵:
- appium版本要高于1.63
- 啟動的時候要聲明automation版本
- 保障5037端口不被占用
解決方案:
- 版本問題
我這里下載的是1.65版本,看版本用以下命令刑顺。
如果版本過低氯窍,建議去官網(wǎng)下載最新的realease版本,也可以看下我的appium環(huán)境搭建里邊的如何安裝appium蹲堂。
- 5037端口是否被占用
在控制臺輸入, netstat -ano | findstr 5037
這里findstr類似于grep的作用
可以看到listening狀態(tài)欄是被PID為13076占用了, 打開任務(wù)管理器找到PID為13076的進(jìn)程狼讨。
可以看到是adb.exe占用了這個端口。
==不過這里我沒有遇到這個問題柒竞,這一步我跳過了政供。。朽基。==
- 安裝Uiautomator2
使用npm安裝:
在控制臺輸入: npm install appium-uiautomator2-driver
我用的是cnpm安裝布隔,如果用cnpm安裝的話請務(wù)必在你的nodejs目錄安裝,因為cnpm會默認(rèn)安裝在當(dāng)前目錄稼虎,會導(dǎo)致node找不到你安裝的包执泰。
__author__ = 'Woody'
from appium import webdriver
desired_capabilities = dict(platformName="Android",platformVersion=7.0,
deviceName="6EB0217526007136",
appPackage="net.yitu8.drivier",
appActivity=".modles.WelcomeActivity",
newCommandTimeout=200,
automationName="uiautomator2")
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities)
print(driver.current_activity)
我們先來試試,一起踩坑~
首先我們在配置里邊加入automationName="uiautomator2"此選項適配Android7.0渡蜻,運行代碼報錯了术吝。计济。
提示: Command 'D:\Android\android-sdk-windows\build-tools\23.0.1\aapt.exe dump badging ==D:\nodejs\node_modules\_appium-uiautomator2-driver@0.4.0@appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.1.6.apk==' exited with code 1
吶,缺了這個apk~~
==前方高能==: 盡管你提示你安裝成功了排苍,但其實并沒有沦寂。
比如我這兒就是如下提示:
提示安裝次數(shù)太多,失敗了淘衙。传藏。。
一句話就想打發(fā)我彤守?我不服毯侦。。
但是大家可以看到上面提供了下載地址, 我點開下載地址具垫,原來是被墻了侈离。。
沒事筝蚕,我給大家提供一下這2個文件卦碾。
復(fù)制剛才提示的報錯信息里的路徑(我本機)D:\nodejs\node_modules_appium-uiautomator2-driver@0.4.0@appium-uiautomator2-driver在資源管理器打開。
然后把你下載的zip解壓到此目錄起宽。
再次運行代碼洲胖,OK
==Android7.0環(huán)境下,case也可以照常運行了!!!==
溫馨提示: 如果不是我給的下載文件坯沪,是自己翻墻去github下的文件,可以看到apk server的版本是0.1.8而和報錯提示的0.1.6不一致腐晾,我這里直接改了0.1.8的文件名為0.1.6去適配這個問題,猜測源碼里寫死了,手動滑稽一下~~~
adb.exe的版本也需要注意喔钝诚,我一開始版本太低連不上Android7.0的機器颖御。。
關(guān)鍵字: UiAutomator2
==有疑惑的同學(xué)歡迎大家一起討論~~~==