android appium微信等自動化的那些坑兒
1.下載appium自動化安裝環境:
appium客戶端
python語言支持
android studio(包含android sdk和adb)
java開發環境
2.微信x5內核調試(網上有詳細配置)
打開微信,在聊天中輸入debugx5.qq.com,點擊進入x5調試頁面,
點擊信息,打開‘是否打開TBS內核Inspector調試功能’即可
3.id變化
微信中控件有的是持續變化的,在不同的手機上id可能不相同,
所以最好不使用id的形式抓去控件。(app原生界面可以采用android
studio自帶的UiAutomator查看)
4.切換webview和native界面
微信中你要隨時切換webview的context,在webview界面進行操作,需要切換到
微信‘WEBVIEW_com.tencent.mm:tools’,使用完成後,在切換回‘NATIVE_APP’,還要在程序中加入下列代碼
desired_caps[‘chromeOptions‘] = {‘androidProcess‘: ‘com.tencent.mm:tools‘} # 驅動H5自動化關鍵之一
5.獲取webview控件
在微信中通常會切換到其webview界面,開啟第二步後,可以通過
chrome://inspect/#devices獲取webview的控件。
6.在切換context過程中會牽扯到appium中chromedriver,這是appium中最麻煩的地方,
經常會在這裏出錯。
(1)切換進微信webview頁面,操作完成後,進入第二個webview頁面,但是不能操作第二個頁面,
這是因為第一個chromedriver沒有正常關閉,有兩種該進方法:
1.在appium安裝目錄中搜索android.hybrid.js,打開後修改其代碼為這樣 1.png
該段代碼的作用原本是如果存在舊的chromedriver就會使用舊的,不會新建一個chromedriver。
修改後,代碼就變成每次都會重新生成一個新的chromedriver進程。
2.在上述1步驟操作完成後,還是不成功,需要在切換到weview界面操作完成返回native界面時,手動殺掉chromedriver進程
os.system(‘taskkill /im chromedriver.exe‘)
7.android 高版本appiu支持
高版本自動化需要appium 1.6.3及以上版本的支持,appium高版本並不是那麽好下載,在網上試了很多種那個方法都不行,最後這種成功了,分享下我的經驗:
npm config set registry http://registry.npm.taobao.org
npm install -g appium
下載完成後需要修改程序:
desired_caps[‘platformVersion‘] = ‘7.0‘
# desired_caps[‘automationName‘] = ‘UIAutomator2‘ 網上說需要切換,但是我下載的是1.7.2版本,使用了反而用不了了。
運行後出現\appium\node_modules\appium-uiautomator2-driver 的文件夾uiautomator2下面沒有 2個必要的安卓apk文件:
在appium的安裝目錄下去安裝這兩個東西,命令如下:
npm install appium-uiautomator2-driver
運行成功,需要註意的是5037端口不能被占用。
8.appium運行超時時間設置
appium的運行超時時間是60s,60s無命令進入就會關閉程序,如果需要的等待時間超過60s,就要對appium進行設置,代碼如下:
#設置超時時間
desired_caps[‘newCommandTimeout‘] = ‘61‘
.有些app進行自動化的時候無法獲取webview的控件元素,使用chrome://inspect/#devices命令讀取不到其webview界面,打印contexts也只有一個NATIVE_APP,解決方法如下:
下載TBS studio,運行程序,手機切換到要讀取的app界面,點擊調試,啟動tbs調試,就完成了
9.獲取手機輸入法
adb shell ime list -s
9.webview問題求助
在抓取webview的過程中,跳轉到一些webview深層次界面後,chrome顯示的界面是黑色,沒有控件顯示,只顯示框的大小,這個問題無法解決,求助
作者:納蘭寒明
鏈接:https://www.jianshu.com/p/95bf34d9c9b4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。
android appium微信等自動化的那些坑兒