zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    send和sendmsg性能测试【sendmsg和send的性能基本一样,并没有得到优化】
    send和sendmsg性能测试
    SparkException: Master removed our application
    大数据入门:各种大数据技术介绍
    78 subsets
    C、C ++的内存模型
    将博客搬至CSDN
    适配器模式
    建造者(Builder)模式
    桥接模式
  • 原文地址:https://www.cnblogs.com/guobaozhu/p/14155939.html
Copyright © 2011-2022 走看看