程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python+Appium 自動化測試避坑指南

編輯:Python

一、環境搭建:環境變量不生效

1、首先,在系統變量裡添加變量名為:ANDROID_HOME,值為:D:\android-sdk

2、然後,在系統變量裡,在已有的Path變量的值裡後面添加:D:\android-sdk\build-tools\22.0.1,記得在前面加上英文分號

3、最後,重啟電腦,切記,如果環境變量配置好了,還在報關於變量未添加的錯誤,記得一定要重啟電腦,都說:重啟解百病啊,這裡算是見識到了。

二、運行腳本:真機不斷提示需要安裝unlock,manager等插件且安裝失敗

1、在做手機自動化測試過程中,我們是完全沒必要去安裝這些插件的,想到的方法是跳過這些插件的安裝,下面介紹下,我在遇到這種情況下的處理方式:

禁止手機每次啟動需要安裝unlock,manager等插件,在D:\Appium\node_modules\appium\lib\devices\android\android.js,注釋4行代碼,注釋代碼如下:


//this.initUnicode.bind(this)
//this.pushSettingsApp.bind(this)
//this.pushUnlock.bind(this)
//this.unlock.bind(this)

如截圖所示:

2、再次運行腳本時,不會再提示需要安裝這些插件了。

注意:如果修改上面的android.js文件後,保存了還是提示安裝插件,這時應該重啟appium服務器,然後重新運行腳本,避免修改的文件未及時生效。

三、運行腳本:報錯Original error: Permission to start activity denied

解決方法如下:
在doc窗口中執行命令:aapt dump badging D:/Apk/app-v3.7.6_docker.apk(或者直接把apk拖進命令行)

使用這個命令獲取package的值和launchable-activity的值

運行後的結果中以下兩行分別是應用包名package和入口activity名稱

package: name=’com.xxx.android.xx’

launchable-activity: name=’com.xxx.android.xx.view.xxxrActivity’

注:在android sdk目錄搜索可以找到aapt.exe,或者當doc窗口提示:aapt不是內部或外部命令時請參看以下解決方法。

四、解決在doc窗口執行aapt命令時,提示:不是內部或外部命令方法:
D:\android-sdk\build-tools\22.0.1將此添加到系統變量中的Path中,此目錄下有aapt.exe,Path添加完成後需要重啟doc窗口,再執行aapt命令,就可以完善的獲取到:package和launchable-activity的值


五、對於手動啟動APP時,沒有引導頁,腳本啟動時有引導頁

處理方法:

先用腳本啟動到引導頁後,一直休眠然後用sdk中自帶工具uiautomatorviewer.bat來定位引導頁面獲取元素

六、退出登錄按鈕元素不在當屏的處理方法:

先滑動後再用坐標定位,代碼如下:

x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
self.driver.swipe(x / 2, y * 0.8, x / 2, y * 0.2, 200)
time.sleep(3)
os.popen("adb shell input tap " + str(659.0) + " " + str(1834.0))
self.driver.find_element_by_class_name("android.view.View").click()
os.popen("adb shell input tap " + str(945.0) + " " + str(1140.0))
self.driver.find_element_by_id("com.autochina.p2p:id/btn_dialog_action").click()
self.driver.quit()

首先:獲取當前手機屏幕的寬和高

其次:在一定時間內按照相應的比例向上滑動

然後:使用定位工具定位到元素的坐標點

最後:根據獲取到的元素的屬性值,進行點擊操作,彈框元素的獲取同此法

歡迎關注【無量測試之道】公眾號,回復【領取資源】

Python+Unittest框架API自動化、

Python+Unittest框架API自動化、

Python+Pytest框架API自動化、

Python+Pandas+Pyecharts大數據分析、

Python+Selenium框架Web的UI自動化、

Python+Appium框架APP的UI自動化、

Python編程學習資源干貨、

Vue前端組件化框架開發、

資源和代碼 免費送啦~
文章下方有公眾號二維碼,可直接微信掃一掃關注即可。

備注:我的個人公眾號已正式開通,致力於IT互聯網技術的分享。

包含:數據分析、大數據、機器學習、測試開發、API接口自動化、測試運維、UI自動化、性能測試、代碼檢測、編程技術等。

微信搜索公眾號:“無量測試之道”,或掃描下方二維碼:

 

添加關注,讓我們一起共同成長!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved