zoukankan      html  css  js  c++  java
  • H5混合应用测试流程

    什么是混合应用?
    原生控件+html.

    一,识别HTML

    识别被测元素为原生控件中的HTML内容

    如何简单识别App中的页面为html页面?
    方法一:开启手机中开发者选项-绘图-显示布局边界,有对应框住的内容为原生内容,H5相关内容不会被框.
    方法二:通过定位工具可看到class=android.webkit.WebView

    二,确认开启webview的调试模式

    默认不开启,如果是公司产品有源码,可让开发加上以下代码重新编译打包,

    if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) {
     WebView.setWebContentsDebuggingEnabled(true);}	
    

    如果没有源码的产品可参考相关文章.

    三,得到当前所有的contexts

    切换之前需要获得所有上下文contexts

    driver.contexts
    

    context上下文,类似是用户和操作系统交互的过程打开打窗口,原生控件的context为NATIVE_APP.获取要进入的webview .

    四,切换context

    driver.switch_to.context("目标context")


    五,驱动程序确定

    chromedriver需要对应安卓系统的webview版本.
    如何确定webview版本?
    方法一,工具:uc-devtools,动态获取,获取到webview的数字为驱动的版本.
    使用方法:https://www.cnblogs.com/hsmwm/p/15015914.html
    方法二,在chrome浏览器中输入:chrome://inspect/#devices
    方法三,appium server中日志显示,appium自带一个chromedriver,如果报错会告知不匹配,也会告知具体版本.

    如何在代码中指定chromedriver?
    在启动参数中可以自定义chromedriver的版本的路径,chromedriverExecutableDir:路径地址.
    在本地新建文件夹,其中可放入不同版本chromedriver来应对不同安卓系统版本.

    六,元素定位并操作.

    webview中定位可使用uc-devtools工具,识别到webview版本点inspect进入,同web元素定位.

    原生定位方式:
    https://www.cnblogs.com/hsmwm/p/14945017.html
    原生定位方法:
    https://www.cnblogs.com/hsmwm/p/14968898.html

    难者不会 会者不难 学是关键
  • 相关阅读:
    linux常用命令(持续更新)
    nginx和redis
    网络编程BIO、NIO、AIO
    同步和异步、阻塞和非阻塞
    执行一条sql语句过程
    InnoDB 的B+树索引原理
    InnoDB 为啥要选择B+树来存储数据
    MySQL数据库引擎简介
    java并发编程(同步、同步容器、线程池)
    putty登录linux遭refuse
  • 原文地址:https://www.cnblogs.com/hsmwm/p/14994009.html
Copyright © 2011-2022 走看看