基於X5內核的UI自動化

前言

最近無論是在微信、QQ瀏覽器、微信小程序還是加載X5內核的頁面進行UI自動化,都會遇到X5內核自動化問題,這篇進行一個問題的總結。

基礎介紹

1、什麼是X5內核?

X5內核是騰訊基於優秀開源Webkit深度優化的瀏覽器渲染引擎,搭載在最新一代的手機QQ瀏覽器上,更快,更便捷。 --百度百科

2、什麼是webview?
Webview是用來展示網頁的view組件,使用webkit渲染引擎來展示內容,可以簡單理解爲手機中的一個高性能內核瀏覽器的組件,微信自帶瀏覽器用的是QQ瀏覽器X5內核,因此微信、QQ瀏覽器、小程序、公衆號等,自然會涉及到X5內核。

3、如何打開x5內核調試開關?
在微信任意聊天窗口輸入 debugx5.qq.com,打開頁面勾選‘打開TBS內核Inspector調試功能’,重啓後自動生效
在這裏插入圖片描述
4、查看webview頁面元素的兩種方法
1) chrome瀏覽器訪問 chrome://inspect/#devices(如果沒有出現,需要翻牆)
可以看到包含該com.tencent.mm 的幾個進程,括號中標記的數字則代表當前安卓系統的chrome版本號。
2)可以通過騰訊TBS調試工具
下載地址:https://x5.tencent.com/tbs/guide/debug/season1.html
5、需要根據對應的Chrome版本下載對應的chromedriver版本
chromedriver下載地址:https://chromedriver.storage.googleapis.com/index.html
chrome版本和chromedriver版本對應圖參照如下:
在這裏插入圖片描述

具體編寫用例

1、appium

 ChromeOptions chromeOptions = new ChromeOptions();
 chromeOptions.setExperimentalOption("androidProcess",  "com.tencent.mm:tools");
 capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

需要在chromeOptions中加入你所測試的微信進程。

driver.context("WEBVIEW_com.tencent.mm:tools");

跑到X5內核頁面之前,切換context就行了。
2、robotframework

${chromeOptions}  create dictionary  ${androidProcess} ${com.tencent.mm:tools} 
open application  chromeOptions=${chromeOptions}
Switch To Context    WEBVIEW_com.tencent.mm:tools

其他問題

1、替換chromedriver的位置
打開appium路徑Appium/node_modules/appium/node_modules/appium-chromedriver/chromedriver/win,將下載好的chromedriver.exe替換舊的chromedriver.exe
2、如何獲取測試頁面的進程
appium做UI自動化時默認上下文是NATIVE_APP。
打開你需要測試的頁面
adb shell dumpsys activity top | grep ACTIVITY
可以獲取到一個pid
adb shell ps 獲取到的pid
即可看到你需要的那個進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章