基於UIAutomator+ChromeDriver模式(UIAutomator安卓原生引擎)android
原理:native(原生)部分使用UIAutomator,webview部分使用ChromeDriver,二者結合混搭,從而實現Hybrid自動化git
1、第一種方案(針對能夠修改源代碼基礎上操做)github
1.準備android 4.4+ 版本以上的手機/模擬器(我安裝的是:nox_setup_v6.3.0.5_full.exe)web
2.讓開發在app源代碼中將webview調試模式打開app
webview.setWebContensDebuggingEnabled(true)
3.安裝UC開發者工具(定位web頁面元素信息工具)框架
自行百度下載https://plus.ucweb.com/download/#DevTool 安裝:tcp
安裝成功後啓動:工具
打開頁面以下:測試
4.模擬器或者真機鏈接後,打開app內嵌的webview頁面或者打開百度網頁版以下:ui
注意:1.APP必須打開webview調試模式 2.模擬器/真機必須打開開發者選項中的USB調試模式(使用adb devices檢測到已鏈接設備)
2、 第二種方案(針對線上app無源碼修改權限而且root權限手機操做)
若是是第三方線上app,通常WebView debug開關都是關閉的,這就須要藉助第三方的工具,才能將debug開關打開
解決方案:使用第三方的工具Xposed+WebViewDebugHook
Xposed是一個框架,可以集成不少功能模塊,這些模塊可以在不修改APK的狀況下,修改APP的運行方式,這裏咱們須要WebViewDebugHook模塊來開啓APP的WebView debug模式
注意:使用這種方式的前提是手機必須root權限,現在的android系統獲取root權限愈來愈難,如7.0 8.0等等,使用這種方法也會失效!
1.由於須要root手機權限,本次使用模擬器來模擬實現,模擬器自帶root權限
2.安裝xposed_3.15.apk
打開:
稍等2分鐘:
安裝更新完成後提示要求超級權限點擊容許,而後提示重啓後生效
重啓模擬器打開xposed能夠看到框架已經激活
3.安裝WebViewDebugHook.apk
點擊進來,勾選
重啓模擬器
4.打開58同城,本地服務驗證
(1)使用uiautomatorviewer.bat查看頁面,發現頁面是WebView類型,沒法定位webview中的元素
(2)此時打開UC開發者工具(前提開啓USB調試,adb devices檢測到設備)
此時就能夠定位WebView頁面元素了
3、第三種方案:(針對線上app無源碼修改權限而且沒有root權限手機操做,這次使用真機來測試)
1.安裝VitualXposed+WebviewDebugHook
下載地址參考:https://github.com/android-hacker/VirtualXposed/releases
//檢測設備已鏈接 C:\Users\Administrator\Desktop>adb devices List of devices attached * daemon not running; starting now at tcp:5037 * daemon started successfully W4FTOBY4NNAQU8 unauthorized //將安裝包推送到手機內存sdcard目錄 C:\Users\Administrator\Desktop>adb push D:\appium\apk\VirtualXposed_AOSP_0.17.3.apk /sdcard/ D:\appium\apk\VirtualXposed_AOSP_0.17.3.apk: 1 file pushed. 4.0 MB/s (8020099 bytes in 1.919s) C:\Users\Administrator\Desktop>adb push D:\appium\apk\WebViewDebugHook.apk /sdcard/ D:\appium\apk\WebViewDebugHook.apk: 1 file pushed. 0.5 MB/s (16330 bytes in 0.031s)
》首先安裝:VirtualXposed_AOSP_0.17.3.apk
打開默認安裝xposed
打開xposed查看當前模塊
2.假設此時須要對58同城app進行元素定位及自動化腳本編寫,此時咱們須要將58同城安裝到虛擬環境VirtualXposed中去,同上步驟操做!
打開VirtualXposed >> 點擊屏幕 >> 添加應用 >>若是本機已安裝選擇克隆方式,若是未安裝選擇內存中的apk安裝 >> 依然選擇VIRTUALXPOSED安裝 >>安裝成功
3.開始定位元素
此時使用uiautomatorviewer.bat定位native元素,沒法定位webview元素
這時候咱們使用UC開發者工具定位WebView元素:
4.未完待續