1、安卓設備連接失敗
通過adb devices命令 查看安卓設備的連接情況,如圖,未成功連接
解決方法:
(1)關閉360安全衛士和360手機助手
(2)查看5037端口是否被占用
netstat -ano|findstr 5037(windows)
netstat -lnt | grep 5037(linux)
連接成功:
設備連接成功后,CMD命令行運行 appium -a 127.0.0.1 -p 4723 –U 6207febc --no-reset ,看appium服務器能否運行成功(運行成功后,如果想啟動appium圖形界面,記得關閉命令行,否則會提示端口沖突)
2、
(1)解決每次運行腳本都安裝setting和unlock的問題:
Appium\node_modules\appium\lib\devices\android 路徑下打開
android.js文件,注釋掉這兩行
(2)解決每次運行腳本都會重新安裝app的問題
Appium老版本的“設置”里有no reset選項,新版本沒有,解決方法:
1>命令行運行appium,帶上--noreset
appium -a 127.0.0.1 -p 4723 –U 6207febc --no-reset
2>在腳本里加上no reset設置
self.desired_cups['noReset'] = 'True'
3、獲取app的包名和當前活動名:
adb shell
dumpsys activity | grep mFocusedActivity
注:有時候調用app的Activity無效,需要獲取到初始Activity,查看方法如下
進入aapt路徑下:D:\android-sdk_r24.4.1-windows\android-sdk-windows\build-tools\28.0.3
輸入命令: aapt dump badging C:\apk\kaoyanbang.apk | find "launchable-activity"
launchable-activity::com.xxx.xxx.xxx.xxx
4、允許第三方應用啟動app的activity:
android-sdk-windows\tools\apps\SdkController 路徑下打開
AndroidManifest.xml文件,添加一行:android:exported = "true"
5、運行自動化腳本,appium報錯
報錯1:selenium.common.exceptions.SessionNotCreatedException: Message: A new session could not be created. (Original error: Requested a new session but one was in progress)
(1)打開appium里面的override exsiting session功能
(2)殺掉app重新啟動
報錯2:報錯 webdriver
app卸載重裝后,需要重啟appium服務器,否則此時運行腳本,會報錯
重啟appium和pycharm解決了我百分之八十的報錯情況,后來我安裝了一個Appium-Desktop的新版,沒有再出現過頻繁報錯的問題,還是升級大法好。
每個錯誤的解釋和原因非常多,具體還是要看appium的日志詳情,再來具體分析。
6、Appium方法構造:
appium的 clear() 方法在安卓上不太好用,速度慢且光標跳轉容易異常,是個已知bug,建議寫一個刪除方法,封裝一下
1.獲取文本長度
2.跳到文本最后
3.刪除(全選后刪除或者一個個字符刪除)