Android WebView测试

news/2023/12/10 15:12:48

混合应用中包含 Web 视图的应用,在 Appium 介绍及环境安装 中介绍了appium支持WebView测试,本文将分享Android 混合页面的测试方法。

目录

  • WebView测试环境准备
    • 手机端
    • PC端
    • 查看手机浏览器版本
    • 查看手机webview版本
    • 客户端代码
  • WebView元素定位
  • Android混合页面测试
  • 系列文章

WebView测试环境准备

手机端

  • 被测浏览器:

    iOS:Safari

    Android:Chrome,Chromium,Browser (自带浏览器)

PC端

  • 安装 Chrome浏览器(或chromium),可以访问https://www.google.com
  • 下载手机浏览器webview版本对应的 driver
    • webview和driver版本对应关系:https://raw.githubusercontent.com/appium/appium-chromedriver/master/config/mapping.json
    • driver下载:https://sites.google.com/a/chromium.org/chromedriver/downloads
    • 国内镜像地址 : https://npm.taobao.org/mirrors/chromedriver/
    • appium github: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md

查看手机浏览器版本

adb shell pm list package | grep webview
adb shell pm dump com.android.browser | grep version
adb shell pm dump com.android.chrome | grep version
adb shell pm dump com.android.webview | grep version

查看手机browser和chrome版本

C:\Users\10287>adb shell pm list packages|findstr browser
package:com.android.browserC:\Users\10287>adb shell pm dump com.android.browser | findstr versionversionCode=22 targetSdk=22versionName=5.1.1-500200323C:\Users\10287>adb shell pm dump com.android.chrome | findstr versionversionCode=398713200 targetSdk=29versionName=80.0.3987.132enabled=true targetSdkVersion=29 versionCode=398713200

查看手机webview版本

在手机上设置中查看 Android System WebView应用版本

客户端代码

  • desirecapability

    • “chromedriverExecutable" = "指定driver地址”
    • “browser” = “Browser” 或者“browser" = ”Chrome“

WebView元素定位

1、连接手机/模拟器

手机打开google浏览器,并进入百度网页:https://m.baidu.com

2、Chrome浏览器输入地址: chrome://inspect

可以看到电脑连接的设备名以及打开的手机浏览器

点击inspect

这样就可以定位到浏览器元素。

Android混合页面测试

文档:https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews?hl=zh-cn

测试步骤:

  1. 打开ApiDemos
  2. 进入WebView页面
  3. 点击"i am a link"
  4. 退出应用

下载ApiDemos-debug.apk

  • https://github.com/appium/appium/blob/master/sample-code/apps/ApiDemos-debug.apk
from appium import webdriver
from appium.webdriver.common.mobileby import MobileByclass TestBrowser():def setup(self):desired_caps = {'platformName': 'android',        'platformVersion': '10','appPackage': 'io.appium.android.apis','appActivity': 'io.appium.android.apis.ApiDemos',        'deviceName': 'CUYDU19626004019','noReset': 'true','chromedriverExecutable': 'D:/testing_tools/chromedriver85/chromedriver.exe'}self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)self.driver.implicitly_wait(5)def teardown(self):        self.driver.quit()def test_webview(self):self.driver.find_element_by_accessibility_id("Views").click()webview ="WebView"print(self.driver.contexts)self.driver.find_element_by_android_uiautomator('new UiScrollable(new UiSelector().''scrollable(true).instance(0)).'f'scrollIntoView(new UiSelector().text("{webview}")''.instance(0));').click()print(self.driver.contexts)self.driver.switch_to.context(self.driver.contexts[1])print(self.driver.current_context)self.driver.find_element(MobileBy.ID, 'i am a link').click()
--THE END--

系列文章

1、Appium 介绍及环境安装
2、selenium/appium 等待方式介绍
3、App控件定位:Android 控件介绍及元素定位方法
4、Appium元素定位(一)
5、Appium元素定位(二):UiAutomator定位
6、Appium控件交互
7、Android WebView测试
8、AppCrawler自动遍历测试
9、自动遍历测试之Monkey工具
10、App自动化测试工具Uiautomator2
11、App自动化测试工具Airtest
12、Android手机管理平台搭建:STF和atxserver2
13、Windows上实现iOS APP自动化测试:tidevice + WDA + facebook-wda / appium
14、iOS APP自动化:predicate定位
15、iOS APP自动化:class chain定位方法
16、使用facebook-wda进行iOS APP自动化测试


欢迎关注公众号:「测试开发小记」及时接收最新技术文章!


https://dhexx.cn/news/show-25391.html

相关文章

人脸识别(四)

源码位置:https://github.com/comhaqs/face_find.git 分支: develop_face_recognition opencv的人脸识别模块现在是放在另外一个库opencv_contrib里,需要编译到opencv里才可以使用,故这里将opencv和opencv_contrib的源码都下下来…

基于RFID的学生一卡通管理系统的设计与实现

目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.3研究主要内容 2 第2章 系统设计 4 2.1需求分析 4 2.1.1可行性分析 4 2.1.2功能需求概述 5 2.1.3 UML用例图 5 2.2学生一卡通的基本组成结构 7 2.2.1天线 7 2.2.2阅读器 7 2.2.3电子标签 11…

自动遍历测试之Monkey工具

某些移动APP业务线多,流程复杂,且产品迭代速度快,在回归测试中涉及到大量用例,工作量大,解决这个问题的一个可行方法是使用自动遍历测试,可以降低用例维护成本,尽可能的自动化覆盖回归业务。 目…

平昌县网上书城系统设计与实现

目 录 第一章 概述 1 1.1 开发背景 1 1.2 开发环境 2 1.3 开发工具 2 1.3.1 MyEclipse 2 1.3.2 Navicat 3 1.3.3 MySQL 3 第二章 需求分析 5 2.1 总体需求 5 2.3 功能需求 6 2.4 性能需求 6 2.5 运行需求 6 2.6 其他需求 7 2.7 可行性分析 7 2.7.1技术可行性 7 2.7.2 经济可行性…

Linux系统介绍:内核、shell及软件包管理

目录Linux内核版本查看系统版本shell常见 shell运行 shell查看Linux系统信息查看系统位数查看内存信息查看CPU信息Linux软件包管理源码编译安装RPMRPM包安装rpm命令其它用法yumDPKGDPKG 命令安装apt查看历史命令historyLinux 文件句柄Linux系统主要包括3层, 硬件&am…

基于MATLAB虚拟仿真的四杆机构运动分析

目 录 1 绪论 (1) 1.1 本文研究的目的意义 (1) 1.2 四杆机构的发展与应用 (1) 1.3 本文研究的主要内容 (2) 2 平面四杆机构运动学分析 (3) 2.1 四杆机构自由度的计算 (3) 2.2 角位移分析 (3) 2.3 角速度分析 (3) 2.4 角加速度分析 (3) 2.5 计算仿真前四杆机构的初始参数值 (4) …

VSCode + Python环境配置

VSCode Python开发环境配置 目录Visual Studio Code 下载安装设置 Python 环境安装code runner插件配置code runnerRun in Terminal其它配置配置VSCode自动保存快捷键Jupyter Notebook插件安装将ipynb文件转换为markdown系列文章Visual Studio Code 下载安装 Visual Studio Co…

基于Ocean Connect云平台的照明控制系统设计

目 录 摘 要 I Abstract II 1 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 2 1.2.1云平台发展现状 2 1.2.2智能照明的发展现状 2 1.3 研究主要内容 3 2 总体方案设计 5 2.1 系统的需求分析 5 2.2 系统架构设计 6 2.3 通信协议设计 7 2.3.1协议数据帧格式 7 2.3.2控制协议的具…

基于Java springboot技术的班务管理系统的设计与实现

目 录 摘  要 I Abstract II 第一章 绪论 1 1.1 课题背景、目的及意义 1 1.2 班务管理系统部署现状及未来发展趋势 1 1.2.1 班务管理系统部署的现状 1 1.2.2 班务管理系统未来发展趋势 2 1.3 研究主要内容 3 第二章 系统开发技术 4 2.1 Java语言 4 2.2 Spring框架简介 6 2.3 …

AppCrawler自动遍历测试

AppCrawler 是由 seveniruby开源的一个自动遍历测试工具,谷歌有一个叫App Crawler 的遍历工具。AppCrawler具有很大的灵活性,可以自由控制测试页面,控件类型,测试深度等,且支持Android和IOS应用测试。 目录AppCrawler安…