51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 864|回复: 0

App自动化测试之Andriod WebView如何测试

[复制链接]
  • TA的每日心情
    无聊
    前天 09:12
  • 签到天数: 918 天

    连续签到: 3 天

    [LV.10]测试总司令

    发表于 2022-5-5 09:47:35 | 显示全部楼层 |阅读模式
    Hybrid App(混合模式移动应用)是介于 Web-app、Native-app 之间的 app,本质上是 Native-app 中嵌入 WebView 组件,在 WebView 组件里可以访问 Web App。Hybrid App 在给用户良好交互体验的同时,还具备了 Web App 的跨平台、热更新机制等优势。
      Android WebView 在 Android 平台上是一个特殊的 View,用它来展示网页内容。WebView 内部实现是采用渲染引擎来展示 View 的内容,提供网页前进后退、网页放大、缩小、搜索等功能。使用 WebView 进行测试需要开发人员配合打开一个 WebView 的开关。
      WebView开关
      WebView 是手机应用内嵌的浏览器,在 Android 4.4 之前 WebView 内核采用的是 WebKit,Android 4.4 之后才用的是 Chrome 作为内置浏览器。它是用来加载 HTML 页面的控件。在模拟器(android6.0 版本)中是默认打开 WebView 开关的,可以直接调试和测试 WebView。真机测试时,必须在应用中打开 WebView 调试开关。要启用 WebView 调试,请在 WebView 类上调用静态方法 setWebContentsDebuggingEnabled。
    1.  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    2.       if (0 != (getApplicationInfo().flags &\
    3.            ApplicationInfo.FLAG_DEBUGGABLE))
    4.                { WebView.setWebContentsDebuggingEnabled(true); }
    5.                }
    6.               
    7.                ```
    8.               
    9.                开启这个开关之后,手机端打开被测的 WebView 页面,然后在电脑端 Chrome 浏览器地址栏录入 “chrome://inspect” 将显示设备上的 WebView 列表。
    10.               
    11.                点击想要调试的 WebView 下方的 inspect 链接,就可以查看这个页面的源代码了。通过源代码就可以查看并确定元素定位表达式了。
    12.                ![](https://ceshiren.com/uploads/default/original/3X/8/d/8d275f4531535ab9a1113d3f96011d11bcb1bd89.png)
    13.               
    14.                如果遇到 Chrome 浏览器版本和 Chromedriver 版本不匹配的问题,可以参见:
    15.                https://ceshiren.com/t/topic/3275
    16.               
    17.                ## WebView 测试
    18.                切换到 WebView 页面,就可以使用 Selenium 操作元素。
    19.                driver.switch_to.context 方法可以从原生页面切换到 WebView 页面,示例代码如下:
    20.                ```
    21.                webview = driver.contexts[-1]
    22.                driver.switch_to.context(webview)
    复制代码
    进入到 APP 后,打开一个包含 H5 的页面,系统默认是 Native 的上下文。如果要操作 H5 上的元素,则需要切换到 WEBVIEW 的上下文。
      上面的代码先通过 driver.contexts 找到所有的 contexts(即上下文),循环遍历这个contexts,找到目标的 WEBVIEW,然后切换到这个 WEBVIEW 中,再执行相应的操作。这时就可以使用 Selenium 的定位方式到 H5 页面的元素了。

    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 08:37 , Processed in 0.064692 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表