appium如何测试app中webview的详细过程

本文介绍了如何使用Appium进行App自动化测试,特别是针对包含WebView的场景。通过Chrome的DevTools和特定的capability设置,可以有效地定位和操作WebView中的元素。文章强调了ChromeDriver版本与WebView版本的匹配,以及在代码层面如何切换上下文进入和退出WebView。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

app 我们通常使用 appium 这个工具来做自动化测试,通过 appium inspector 来抓取元素或者直接使用 sdk 自带的 uiautomatorviewer 来抓取,但是很多 app 中存在 webview 控件,那这个 webview 的页面我们该如何去测试呢?

首先我们要知道什么是 webview,他是移动设备提供的一个调用 webkit 内核的内置浏览器,其 class 为 android.webkit.WebView,webview 中加载出来的是网页内容。

其实对于 webview 的界面我们使用 appium 原生 uiautomatorviewer 也是可以定位到的,但是定位的效果有限(需要多次刷新 uiautomatorviewer,其会很智能的解析),使用 chrome 自带的 DevTools 工具专门定位 webview 的方式也是可以的,要好定位一些

环境准备

  • 直接 npm 安装好的 appium sever 或者使用集成的 appium-desktop
  • jdk 和 sdk
  • 已经配置好的一个模拟器,并且可以成功启动
  • chrome 内核的浏览器,比如 chrome(需要可以魔法上网)或者最新版使用 chrome 内核的 edge。我们主要是想要使用其中自带的 DevTools 这样一个模拟器调试工具

操作步骤

工具层面的使用

我们先启动模拟器,启动好之后打开手机浏览器,然后我们打开支持 chrome 内核的 pc 浏览器,输入如下网址

chrome://inspect/@devices

过几秒之后我们可以看见浏览器显示了连接的模拟器信息(原理大致是 DevTools 这个工具去搜索本地环境变量的 adb 连接了哪些设备,然后把这些设备的机型信息和这些设备的 webview 页面显示出来)

在这里插入图片描述

注意到上面红框中的设备,第二个红框中的 inspect,我们一点击它就会出现一个弹框来监视模拟器的页面了,并且我们还可以注意到的 chrome 版本是 74 的,那么你本地 pc 浏览器 chrome 版本需要高于 74 的才行,这样才可以找到这个 webview

真机上默认是不开启 app 的 webview 调试的,想要真机支持,需要开发使用以下代码代开开关,可以与研发商议在测试环境中使用

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
   
    WebView.setWebContentsDebuggingEnabled(true);
}

<

<think>好的,用户想了解使用Appium测试拼多多的过程,并获取相关截图。首先,我需要回忆一下Appium的基本流程。根据引用[3]和引用[4],Appium环境搭建相对复杂,需要配置Java、Android SDK、Node.js等。然后,用户可能需要编写测试脚本,用Python或Java。 用户提到拼多多软件测试,所以需要明确测试的功能点,比如商品搜索、下单流程。可能需要定位元素,使用UIAutomator Viewer或Appium Inspector,这部分引用[3]提到过工具的使用。 截图部分,测试过程中需要在关键步骤截取屏幕,比如启动应用、搜索商品、加入购物车。根据引用[4],测试报告和失败截图可以通过TestNG或结合Jenkins展示,但用户可能需要直接的截图方法,比如使用driver.save_screenshot()。 另外,用户可能需要示例代码,所以得提供一个Python的示例,涵盖启动会话、元素定位、操作和截图。还要注意Appium的Desired Capabilities配置,确保包名和Activity正确,这里可能需要用户自己获取拼多多的包信息。 可能的问题包括环境配置错误、元素定位失败,引用[4]提到处理这些问题的方法,比如检查配置或使用不同定位策略。最后,用户可能需要相关的问题,比如性能优化或框架整合,根据引用[3]和[4]生成相关问题。</think>### 使用Appium测试拼多多的过程及截图示例 #### 一、环境准备 1. **基础工具安装** - 安装Java JDK并配置环境变量(版本≥1.8)[^3] - 安装Android SDK并配置`ANDROID_HOME`环境变量 - 安装Node.js(Appium Server依赖)[^3] - 安装Appium Desktop或通过npm安装:`npm install -g appium` 2. **设备连接** - 开启手机开发者模式,启用USB调试 - 连接手机至电脑,通过`adb devices`验证设备识别 3. **依赖库安装(Python示例)** ```bash pip install Appium-Python-Client selenium ``` --- #### 二、测试脚本编写(Python示例) ```python from appium import webdriver from time import sleep desired_caps = { "platformName": "Android", "platformVersion": "11", # 根据设备系统版本修改 "deviceName": "Your_Device_ID", # 通过adb devices获取 "appPackage": "com.xunmeng.pinduoduo", # 拼多多包名 "appActivity": ".ui.activity.MainFrameActivity", # 启动Activity "noReset": True # 不重置应用状态 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 示例操作:搜索商品并截图 try: # 点击搜索框 search_btn = driver.find_element_by_id("com.xunmeng.pinduoduo:id/search_bar_text_view") search_btn.click() driver.save_screenshot("step1_search_click.png") # 截图1 # 输入关键词 search_input = driver.find_element_by_id("com.xunmeng.pinduoduo:id/search_input_box") search_input.send_keys("苹果") driver.save_screenshot("step2_input_keyword.png") # 截图2 # 点击搜索按钮 submit_btn = driver.find_element_by_id("com.xunmeng.pinduoduo:id/search_btn") submit_btn.click() sleep(3) driver.save_screenshot("step3_search_result.png") # 截图3 except Exception as e: print(f"操作异常:{e}") finally: driver.quit() ``` --- #### 三、关键步骤说明 1. **元素定位** - 使用`appium inspector`或`UIAutomatorViewer`获取拼多多页面元素ID(如搜索框ID)[^3] - 定位方式:`find_element_by_id`、`XPath`或`accessibility_id` 2. **截图实现** - `driver.save_screenshot("filename.png")`保存当前页面截图 - 截图文件默认存储于脚本同级目录 3. **注意事项** - 包名和Activity需通过`adb shell dumpsys activity | grep mFocusedActivity`获取[^4] - 若元素无法定位,尝试切换`WebView`上下文或调整隐式等待时间 --- #### 四、测试报告与问题排查 1. **日志分析** - 查看Appium Server控制台输出,定位错误原因(如元素未找到、超时) 2. **常见问题** - **设备未连接**:检查`adb devices`是否识别设备 - **权限问题**:确保手机允许安装未知来源应用 - **兼容性问题**:调整`platformVersion`或更换设备[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值