zoukankan      html  css  js  c++  java
  • Appium-Hybrid Mobile App

    定义

    可以理解为通过 Web 网络技术(如 HTML,CSS 和 JavaScript)与 Native 相结合的混合移动应用程序。H5主要用于界面的编写,比如按钮、单选框以及下拉框等; CSS3用于对界面细节化的修饰,设置不同的样式;JS实现数据交互。Native与HTML相比,性能稳定、交互流畅,可以调用本地硬件和访问本地资源,但是开发和维护成本高,发布周期长。而HTML有着跨平台,开发成本第,更新快等有点。

    现在很多app都是由原生页面(native)和webview页面(H5)组成,在自动化测试中需要判断页面是native还是webview。

    Hybrid 测试流程

    1. 进入的页面具有webview
    2. 使用uiautomatorviewer工具或contexts方法进行判断存在webview
    3. 使用context方法切换进webview
    4. 定位,操作
    5. 再次使用context方法返回native

    webview与native的判断

      1、uiautomatorviewer中判断
      在UI Automator Viewer中,查看结构,如果节点的class 是android.webkit.WebView 则可判断为 H5页面

      

      2、通过contexts方法判断
        driver.contexts

    # ['NATIVE_APP', 'WEBVIEW_com.tencent.xxx']
    contexts打印结果为:['NATIVE_APP', 'WEBVIEW_com.tencent.xxx']
    NATIVE_APP则表示为app原生页面。
    webview_com.XXXX 表示为 webview 页面

    webview 操作

    由于 native 和 webview 是两种不同页面,所以要在native中操作webview需要先切换到webview页面,切换方法:
    由于driver.contexts返回的是一个列表,当然可以使用index获取webview
    driver.switch_to.context(driver.contexts[1])
    在webview中操作完成后,需要切换到NATIVE_APP继续操作。可以使用driver.contexts返回值的index=0操作,或者直接使用NATIVE_APP进行操作
    driver.switch_to.context(driver.contexts[0])driver.switch_to.context(“NATIVE_APP”)

    错误一解决:

    出现:Original error: No Chromedriver found that can automate Chrome ‘80.0.3987.122’表示浏览器版本与驱动版本不匹配
    解决方法:下载匹配的chrome浏览器版本与驱动,手机与PC端chrome的版本最后一致
    chrome driver 下载地址:https://npm.taobao.org/mirrors/chromedriver

    chrome driver下载后存放在 ~Appium esourcesapp ode_modulesappium ode_modulesappium-chromedriverchromedriverwin 下
    或者:在脚本的caps中添加driver:
    caps["chromedriverExecutable"] = r"xxxxxxxxxxprojectAutoTestchromedriver.exe"
    或者:
    caps["chromedriverExecutableDir"] = r"xxxxxxxxxxprojectAutoTest"

    错误二解决:

    使用contexts无法获取webview
    1、android4.4以上需要开启webView的远程调试开关
    2、测试中开启debug

     

  • 相关阅读:
    apache 访问出现403 Forbidden
    linux下用Apache一个IP多个域名建虚拟主机
    利用xargs 可以一次性卸载到位
    linux安装包地址备忘
    ii7安装php
    基于jQuery的对象切换插件:soChange 1.5 (点击下载)
    phpMyAdmin 缺少 mysqli 扩展。请检查 PHP 配置
    Android中的自动朗读(TTS)
    Android中的手势
    Android中的SQLiteOpenHelper类
  • 原文地址:https://www.cnblogs.com/tynam/p/12400929.html
Copyright © 2011-2022 走看看