1. 程式人生 > 其它 >微信小程式自動化_從環境搭建到自動化程式碼實現過程

微信小程式自動化_從環境搭建到自動化程式碼實現過程

前期準備

微信小程式作為現在流行的一種應用載體,很多小夥伴都有對其做自動化測試的需求,由於騰訊系 QQ、微信等是基於騰訊自研 X5 核心,不是谷歌原生 webview,所以除錯會有些許差異(現在很多 app 產品也開始流行採用 X5 核心作為其內嵌 Web 瀏覽服務)。

genymotion、夜神等模擬器是intel的X86架構,很多app安裝不了,比如微信、qq等(雖然說可以通過安裝arm直譯器來解決該問題,但是進行X5核心除錯的話也會出現問題),建議最好是一臺真實的手機來做。

需要注意的是 X5 核心只支援手機,模擬器是不支援的。除錯和抓取小程式webview這些都需要真機完成
連結:http://testingpai.com/article/1615452452052

https://www.cnblogs.com/yyoba/p/9455519.html

1、 開啟手機微信除錯模式

微信基於騰訊自研X5核心,所以需要對手機開啟X5除錯模式,設定允許抓取小程式的Inspect,方便對頁面元素進行定位,這些工作的前提都需要開啟除錯模式

開啟webview微信小程式的開關

1、 往檔案助手或微信好友傳送http://debugx5.qq.com,這個頁面可正常開啟,X5核心的設定頁面

2、 如果點選這個http://debugx5.qq.com,進到的頁面提示當前非X5核心,按照給出的提示操作,聊天框輸入http://debugtbs.qq.com並點選,提示要在聊天輸入框輸入debugmm.qq.com/?forcex5=true

3、 根據提示,在聊天輸入框輸入debugmm.qq.com/?forcex5=true,並點選,彈出如下

4、 成功切換之後,再點選http://debugx5.qq.com,就可以進到X5除錯核心頁面

5、 首次開啟,要安裝線上核心,點選【安裝線上核心】,會自動開始下載,下載完成後,提示重啟,點選重啟;最好將微信也一起結束程序重啟一下。

6、 點選DebugX5,進可以進到第一步的頁面,設定抓取小程式webview的開關了

7、 如果第六步報“debugx5頁面僅在x5核心時有效,由於當前沒有使用X5核心,無法開啟Debugx5”,這個時候微信重啟,重新開啟吧

2、 驗證是否能抓到微信小程式的webview

前提條件:手機通過資料線連線到電腦端,電腦端開啟chrome,輸入chrome://inspect/#devices,即可在這裡看到連線的裝置和抓取到資訊。

Chrome 自帶的 inspect 工具識別小程式/內嵌 Web 頁面需要訪問外網

建議使用:uc-devtools進行抓取inspect,國內有些限制,抓取到的inspect為空白。下載地址:https://dev.ucweb.com/(注:不能在谷歌瀏覽器下載,彈不出下載提示框)

開啟微信,調起小程式,就可以檢視抓到的webview了

3、 !!!微信最新版本不能抓取到webview

安裝了微信最新版本,操作小程式,怎麼都抓不到小程式的webview

解決方案:降低微信版本到7.0.22

操作方法:
1、有些應用商場是有歷史版本可以下載的,可先下載應用商城,搜尋微信,選擇歷史版本,選擇7.0.22進行安裝(7.0.10版本太低,登入提示要用新版本)

豌豆莢可用

2、解除安裝最新版本前,先將手機的聊天記錄備份到電腦端,使用完之後,可以將電腦端的聊天記錄恢復到手機

3、重灌了7.0.22版本的微信後,開啟微信小程式的webview的方法同第一大點的步驟,抓不到,重啟再試試!

參考文章:https://blog.csdn.net/weixin_46003972/article/details/120670598

實際操作

1、配置chromeDriver

和app自動化類似,依靠appium做自動化,小程式本質上還是 Web 頁面,我們可以通過 chromeDriver 驅動小程式頁面執行,小程式因為使用的 X5 核心是經過騰訊二次開發過之後的,所以 chromeDriver 驅動與 webview 版本匹配並不嚴格按照官方 Appium 說明的匹配規則,這裡試驗了幾個版本的 chromeDriver,發現 V2.40 版本

下載地址:https://npm.taobao.org/mirrors/chromedriver

下載完畢後解壓,將 chromeDriver 替換到 Appium 的自帶 chromeDriver 所在路徑:

Appium.exe所在路徑\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

下載完成後,到appium配置驅動的執行路徑,設定前置,使用這個前置啟動

2、獲取小程式的對應程序名

在獲取小程式程序名前,要先獲取微信的包名

com.tencent.mm

獲取小程式的程序名

adb shell dumpsys activity top | findstr ACTIVITY

3、uc-devtools進行元素的定位,編寫定位元素的定位

3、程式碼實現

1、 和app自動化一樣,要先開啟app,開啟app的配置資訊

2、啟動微信進入到主頁-> 下滑展開小程式列表-> 點選對應小程式

3、進入到小程式,實際上是webview,需要切換到webview進行操作,這個時候就需要用到切換上下文,switch_to.context()

4、切換到小程式之後,實際上是操作chrome頁面,定位元素要用回要用webdiriver的定位元素的BY

參考:https://www.cnblogs.com/lizhe860/p/14486432.html(詳細講解了小程式)