zoukankan      html  css  js  c++  java
  • APP自动化之Hybrid自动化解决方案(七)

    基于UIAutomator+ChromeDriver模式(UIAutomator安卓原生引擎)

      原理:native(原生)部分使用UIAutomator,webview部分使用ChromeDriver,两者结合混搭,从而实现Hybrid自动化

    一、第一种方案(针对可以修改源代码基础上操作)

    1.准备android 4.4+ 版本以上的手机/模拟器(我安装的是:nox_setup_v6.3.0.5_full.exe)

    2.让开发在app源代码中将webview调试模式打开

    webview.setWebContensDebuggingEnabled(true)

    3.安装UC开发者工具(定位web页面元素信息工具)

    自行百度下载https://plus.ucweb.com/download/#DevTool 安装:

    安装成功后启动:

    打开页面如下:

    4.模拟器或者真机连接后,打开app内嵌的webview页面或者打开百度网页版如下:

    注意:1.APP必须打开webview调试模式  2.模拟器/真机必须打开开发者选项中的USB调试模式(使用adb devices检测到已连接设备)

    二、 第二种方案(针对线上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页面元素了

    三、第三种方案:(针对线上app无源码修改权限并且没有root权限手机操作,此次使用真机来测试)

     1.安装VitualXposed+WebviewDebugHook

     下载地址参考:https://github.com/android-hacker/VirtualXposed/releases

    //检测设备已连接
    C:UsersAdministratorDesktop>adb devices
    List of devices attached
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    W4FTOBY4NNAQU8        unauthorized
    //将安装包推送到手机内存sdcard目录
    C:UsersAdministratorDesktop>adb push D:appiumapkVirtualXposed_AOSP_0.17.3.apk /sdcard/
    D:appiumapkVirtualXposed_AOSP_0.17.3.apk: 1 file pushed. 4.0 MB/s (8020099 bytes in 1.919s)
    
    C:UsersAdministratorDesktop>adb push D:appiumapkWebViewDebugHook.apk /sdcard/
    D:appiumapkWebViewDebugHook.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.未完待续

  • 相关阅读:
    JAVA课程课后作业之使用递归完成回文
    原码、补码,反码以及JAVA中数值采用哪种码表示
    JAVA课后作业01
    java开学考试有感以及源码
    自动生成30道小学四则运算题目
    统计文档中单词出现频率
    JAVA课程课后作业03之动手动脑
    暑假假期周进度报告(第八周)
    字节流FileInputStream FileOutputStream四种读写,包装流BufferedOutputStream BufferedInputSream 缓冲区默认8192字节
    多态性
  • 原文地址:https://www.cnblogs.com/xiaozhaoboke/p/11319835.html
Copyright © 2011-2022 走看看