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


前期准備

微信小程序作為現在流行的一種應用載體,很多小伙伴都有對其做自動化測試的需求,由於騰訊系 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(詳細講解了小程序)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM