前言
最近另锋,因為項目的物聯(lián)設(shè)備需要跟云端通信,需要接入手機APP狭归。在這里記錄一些Android自動化過程的準備工作和踩坑夭坪。
一、環(huán)境安裝
方式一过椎、公司自己的一鍵安裝
略
方式二室梅、自己百度安裝
這個方法沒有從頭到尾去實踐,主要是電腦連接Android APP需要用到什么潭流,就裝什么竞惋。目前想法是利用robotframework作為webDriver script柜去,因此灰嫉,python環(huán)境、ADB環(huán)境嗓奢、JAVA環(huán)境讼撒、RF環(huán)境、Appium環(huán)境等等都得裝股耽。簡單羅列過程:
- 安裝JDK。在www.orcale.com下載 java SE物蝙,安裝炎滞。
- 安裝Android SDK。在 developer.android.com下載 Get the Android SDK诬乞。
- 安裝Python册赛。
- 安裝selenium。
- 利用Python pip 安裝robotframework-selenium2library robotframework-ride. AppiumLibrary
- 安裝 wxPython-4.0.7.post2-cp27-cp27m-win32.whl震嫉。
- 安裝appium-desktop-setup.exe(默認包含node.js).
- 安裝appium Client森瘪,在Appium-Python-Client下執(zhí)行 python setup.py install.
- 安裝AppiumDesktop(比appium自帶的桌面端好用的開源桌面端).
配置檢查: - 檢查SDK:java –version。
- 檢查node:node -v
- 檢測appium:appium-doctor
- 檢查服務(wù)運行:appium.cmd
- 確保環(huán)境變量都加好
二票堵、運行
打開
用appium桌面端打開就行:
打開首頁
運行服務(wù)器:
運行
點擊右上角放大鏡:
放大鏡
我們只要把appium開啟來就行扼睬,通過RF腳本去操作手機端,操作過程日志都會顯示在第二張圖上悴势。第三張圖是appium自帶的定位元素的功能窗宇。
三措伐、元素定位
- 方法一、appium inspector
可以參考:http://www.reibang.com/p/0a19409c0d37 - 方法二担映、uiautomatorviewer
四废士、踩坑
- Appium運行報錯4.4W:
- 刪除SDK文件夾下面android4.4W。
- Appium運行報錯255權(quán)限錯誤等:
- 執(zhí)行腳本的activity需要先獲取一定的權(quán)限蝇完,可以考慮換一個activity開始官硝,一般是打開APP的第一個頁面
- Appium運行提示服務(wù)被占據(jù):
- 重啟appium服務(wù)
- 關(guān)注手機是否跳出獲取unlock安裝的彈窗,是就點擊確定
- Click button點擊報錯(一般情況下xpath定位是可行的短蜕,但是有時候因為環(huán)境編碼不一致氢架,無法利用xpath過濾器)錯誤代碼:TypeError: exceptions must be old-style classes or derived from BaseException, not unicode
- 換成click element 選擇過濾器為id,參數(shù)為id= 或者 name=
- Id對應(yīng)的就是Nodedetail下的resource-id
- Id表現(xiàn)形式有幾種:比如update_left_button或者id=com.hikvision.sentinels:id/update_left_button均能夠表示ID
- Id和name對于node元素來說的唯一的標記朋魔,因此只需要選擇就能唯一定位岖研,但是其他的屬性定位可能需要加上編號
- Click button點擊按鈕,根據(jù)按鈕名稱或當前界面按鈕數(shù)量的序號點擊警检,不使用控件id 使用這個關(guān)鍵字意味著要點擊的對象是一個按鈕 在iOS中的類名為UIAButton 在Android中的類名為android.widget.Button
- Uiautomatorviewer運行”Error obtaining UI hierachy問題:
- 使用程序被運行過了孙援,重啟一下就好
- win10 下AndroidStudio無法連接真機:
- 需要禁用驅(qū)動程序強制簽名
- 右下角通知全部展開—所有設(shè)置—更新和安全—立即重啟—高級選項—點擊重啟—選擇7,等待重啟完成扇雕。
- 在設(shè)備管理下—便攜設(shè)備拓售,若正常顯示連接的設(shè)備,則表示驅(qū)動安裝好了
- Android Studio中no module镶奉,無法運行APP:
- 構(gòu)建moudle 參考:https://blog.csdn.net/qiushisoftware/article/details/87395458
五础淤、編碼
裝完環(huán)境、踩完坑哨苛,就可以利用RF的RIDE編寫代碼了鸽凶,RF自帶的編輯器不怎么好用,可以配置eclipse使用建峭。