You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appium Android:如何测试WebView中显示的PDF文件

Android WebView中PDF条款测试后续步骤

1. 从Script内容中提取PDF路径

你已经获取到script标签的innerHTML,接下来需要从这段代码里解析出PDF的实际地址(远程URL或本地文件路径)。通常这类_init方法里会包含PDF的加载参数,比如类似loadPDF('https://xxx/terms.pdf')的结构。

可以用字符串匹配或正则表达式提取路径,示例代码如下:

// 正则匹配示例(需根据实际script内容调整规则)
Pattern pattern = Pattern.compile("loadPDF\\('(.*?)'\\)");
Matcher matcher = pattern.matcher(htmlCode);
if (matcher.find()) {
    String pdfPath = matcher.group(1);
    // 拿到PDF路径后进入下一步验证
}

注意:你的原代码里使用了中文引号(比如“WEBVIEW_”),实际运行时要替换为英文引号,否则会抛出语法错误。

2. 验证PDF内容的两种方案

方案一:直接获取PDF文件并验证

  • 如果PDF是远程URL:用HTTP客户端(如OkHttp)请求该URL,下载PDF后用PDF解析库(如Apache PDFBox)读取内容,检查关键条款是否存在:
// 示例:用PDFBox读取远程PDF内容
URL pdfUrl = new URL(pdfPath);
PDDocument document = PDDocument.load(pdfUrl.openStream());
PDFTextStripper stripper = new PDFTextStripper();
String pdfContent = stripper.getText(document);
// 验证关键文本
assert pdfContent.contains("用户不得擅自复制本条款");
document.close();
  • 如果PDF是本地路径:用Appium的文件操作API读取设备上的PDF文件,再用PDF解析库验证:
// 示例:读取设备本地PDF
String localPdfPath = "/sdcard/Android/data/com.your.app/files/terms.pdf";
byte[] pdfBytes = ((AndroidDriver) getBaseMobileDriver()).pullFile(localPdfPath);
PDDocument document = PDDocument.load(new ByteArrayInputStream(pdfBytes));
// 后续验证逻辑同上

方案二:直接在WebView中操作PDF阅读器控件

如果WebView内嵌了PDF阅读器(如Chrome的PDF查看器),可以直接定位阅读器控件进行交互验证:

  • 定位搜索框(如果有),输入关键条款文本,验证是否能找到内容:
// 示例:定位PDF阅读器的搜索输入框(需根据实际页面元素调整XPath)
WebElement searchBox = getBaseMobileDriver().findElement(By.xpath("//input[@type='text' and @aria-label='搜索']"));
searchBox.sendKeys("隐私政策");
// 验证搜索结果是否存在
assert getBaseMobileDriver().findElements(By.xpath("//div[contains(text(),'隐私政策')]")).size() > 0;
  • 验证PDF的分页、滚动等交互是否正常:
// 示例:滚动PDF页面
JavascriptExecutor js = (JavascriptExecutor) getBaseMobileDriver();
js.executeScript("window.scrollBy(0, 500)");
// 验证当前显示区域的内容

3. 切换回原生上下文(可选)

测试完成后,记得切换回原生App上下文,避免影响后续测试:

((AndroidDriver) getBaseMobileDriver()).context("NATIVE_APP");

内容的提问来源于stack exchange,提问作者DeepakVerma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:30:44