1. 程式人生 > >appium+python自動化測試(4)

appium+python自動化測試(4)

 混合應用的開發:測試案例是《果時匯.apk》,首先,如果做appium測試,必須具備一定的app開發瞭解,比如什麼是混合開發,什麼是純h5開發,什麼是純原生的。將apk安裝到手機。
首先是一個連線的問題:

執行一段時間後設備adb服務中斷,多次拔插資料線才能再連上,換了多個appium版本都有同樣的問題:
*daemonnotrunning.startingitnowonport5037*adbE43518809114usb_osx.cpp:322]Couldnotopeninterface: e00002c5adbE43518809114usb_osx.cpp:284]Couldnotfinddeviceinterface
*daemonstartedsuccessfully*error: nodevices/emulatorsfound


這時候我們重啟一下電腦,手機(當然一次連線上,很長時間就不需要重啟了),然後找個軟體,比如手機管家之類的,掃一下驅動,把手機驅動一載入就可以連線上了。mac電腦上比較好用的就是錘子的HandShaker。

 mac平臺上的uiautomatorviewer可以一如既往的對混合應用,h5應用進行定位,並且操作,跟原生的定位操作沒什麼區別,而且不需要切入切出之類的操作。

windows上就會有很多坑了,首先是我們在網址欄輸入http://inspect 會出現手機型號,如果沒有出現,掃一下手機驅動有沒有裝上,或者開發者模式,usb除錯有沒有開啟。

圖片

然後開啟我們的app,會出現如下介面:

圖片


如果沒有像預期一樣出現果時匯,這裡我們需要翻牆,因為第一次需要翻牆載入一下快取,可以找個藍燈之類的翻牆軟體裝上,找個網速好的地方,一下就加載出來了。

然後就是對頁面進行操作了,我們點選inspect,會出現如下頁面:

圖片

然後我們通過右邊程式碼頁面的左上角的小尖頭去定位元素,如果沒有小箭頭,出現的是搜尋按鈕,可能是瀏覽器版本的原因,或者手機的原因,如果瀏覽器的原因,點選搜尋按鈕跟小箭頭的功能沒差別,但是如果是手機的原因,可以使用別人的手機試試。


然後是獲取元素操作了,因為我們整個頁面都是h5的,所以第一步就是要切入到webview:
有的時候,我們切入webview會出現如下錯誤:

selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: We already have a chromedriver instance running

原因就是我們當前手機運行了多個webview的app,比如淘寶(我就比較愛開啟,原因我就不說了。。。),微信,這時候,我們可以關閉後臺所有的app,只留下需要測試的app即可。

然後我們在進行獲取寬高以及滑動的時候可能會報如下錯誤:


selenium.common.exceptions.WebDriverException: Message: Method has not yet been implemented

原因就是獲取寬高跟滑動的swip方法都是原生頁面的方法,這時候我們需要切換回來,當然不止這兩種操作,還會有很多其他的操作,我們不能在h5頁面操作,只有原生頁面支援,這時候我們就要切回NATIVE_APP,然後進行操作即可。然後要點選元素了,我們需要再次切換到webview,可能有的人會覺得切來切去的比較煩而且覺得亂,所以我們只需要記住哪些方法只可以在nativeapp上執行,哪些需要在webvioew點選,我們到時候進行相應的切換即可,還是那句話,我們一定要清楚自己想要做的事情,要實現的功能,就不會把程式碼寫亂。