APP自動化測試內嵌H5三種處理方式(基於python)


1、怎么判斷APP是否有內嵌H5

使用appium的檢查器對source中class進行查看,是否為 "android.webkit.WebView",如圖

 

2、ADB命令

前提:設備需開啟開發者模式,並授權允許開啟調試模式。(建議使用虛擬機,屏幕大小固定不變。)

2.1、引用第三方庫及常用操作

import os

os.system('adb shell input tap x y')  # 觸控點擊

os.system('adb shell input text 123456789')  # 輸入文本

os.system('adb shell input keyevent KEYCODE_TAB')  # 按鍵操作

os.system('adb shell input swipe 1000 1000 100 1000')  # 滑動操作

os.sysytem('adb shell input keyevent KEYCODE_DEL')  # 逐個刪除

3、內嵌H5的webview開啟debug模式

3.1、檢查是否開啟debug模式

打開APP,進入到內嵌H5頁面,在uc-devtools上查看,是否有對應的webview。若無,則未開啟。

 

 

 點擊inspect,正常則顯示為如下:

3.2、開啟debug方式

在app中配置如下代碼(在WebView類中調用靜態方法setWebContentsDebuggingEnabled):

if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.KITKAT) {  
 WebView.setWebContentsDebuggingEnabled(true);
}

3.3、web自動化操作准備

由於涉及到web自動化操作,所以我們需要選擇對應版本的Chromedriver,可以看到我們需要的版本是(66.0.3359.158),如圖

 

 然后再打印當前H5頁面的上下文,並切換到webview。代碼如下:

# 獲取頁面所有的上下文
cons = driver.contexts  # ['NATIVE_APP', 'WEBVIEW_com.dogo.duo4android', 'WEBVIEW_com.android.launcher2']
print(cons)
sleep(3)
driver.switch_to.context(cons[1])  # 切換到webview

 4、第三方應用,內嵌H5的可行性方案

4.1、第三方應用內嵌H5自動化測試遇到的問題

1> 真機內嵌H5自動化無法ROOT成功,及正常安裝上xposed+webviewdebughook

2> 眾多模擬器無法正常安裝上xposed+webviewdebughook

4.2、模擬器的選擇

對比了多家模擬器(本來想用真機測試,但是無法解決ROOT問題),發現逍遙模擬器能解決所有遇到的問題。記得,開啟模擬器ROOT設置

逍遙模擬器連接方式:

adb connect 127.0.0.1:21503

  然后,查看設備連接情況。

 

 4.3、利用第三方工具開啟debug模式

1> 在模擬器上安裝xposed框架,並更新版本。

2> 更新完畢后重啟模擬器,成功頁面如下圖所示:

 

 3> 在xposed框架下安裝webviewdebughook,重新啟動后在xposed模塊選項中激活webviewdebughook。

 

 4> 配置完成后可以進行驗證,打開uc-devtools軟件並使用模擬器中的瀏覽器進入百度頁面,若uc工具中可以識別到頁面信息則表示配置成功。

5> 后續步驟,就如同web自動化操作准備一致,獲取Chromedriver版本,獲取HT頁面上下文。記得,操作完成內嵌H5后,回到原生頁面,同樣需要切換回去。

driver.switch_to.context('NATIVE_APP')  # 切換回原生

 

 

以上全部!

 

 

 

該文章內容均是在遇到問題時,查閱一下博客所得,並非原創!

參考文檔1:https://www.cnblogs.com/-ming/p/12085311.html

參考文檔2:https://www.cnblogs.com/jinjiangongzuoshi/p/6526049.html

參考文檔3:https://www.jianshu.com/p/ccb13893b6a6

參考文檔4:https://blog.csdn.net/suhang1205/article/details/105882453/

參考文檔5:https://blog.csdn.net/Logo_OO/article/details/108599066

參考文檔6:https://www.cnblogs.com/lovehuange/p/13473217.html

參考文檔7:https://blog.csdn.net/qq_15228737/article/details/81142905

 


免責聲明!

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



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