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

如何将protractor-html-screenshot-reporter生成的HTML报告转换为Excel?

把Protractor HTML截图报告转成Excel的实用方案

我来分享几个靠谱的方法,不管你是想批量自动化处理还是手动快速导出都能覆盖到:

方法一:用Node.js脚本自动化处理(推荐集成到测试流程)

如果你的项目是基于Node.js的,这个方法可以直接集成到测试流水线里,批量处理报告非常方便:

  1. 先安装依赖包
    打开终端,在项目根目录下运行:
npm install cheerio xlsx --save-dev
  • cheerio用来解析HTML结构,提取数据
  • xlsx用来生成Excel文件
  1. 编写转换脚本
    新建一个比如html-to-excel.js的文件,写入以下代码(记得根据你的实际报告结构调整选择器):
const fs = require('fs');
const cheerio = require('cheerio');
const XLSX = require('xlsx');

// 替换成你的HTML报告路径
const htmlPath = './reports/protractor-report.html';
// 输出的Excel文件名
const excelOutputPath = './reports/test-results.xlsx';

// 读取HTML内容
const htmlContent = fs.readFileSync(htmlPath, 'utf8');
const $ = cheerio.load(htmlContent);

// 提取测试数据 - 这里假设报告的结果表格类名为'results-table',需要根据你的报告实际结构修改
const tableRows = [];

// 先提取表头
const headers = $('table.results-table th').map((_, th) => $(th).text().trim()).get();
tableRows.push(headers);

// 提取每一行的测试数据
$('table.results-table tbody tr').each((_, tr) => {
  const rowData = $(tr).find('td').map((_, td) => $(td).text().trim()).get();
  // 如果报告里有截图链接,你可以额外提取路径添加到行中:
  // const screenshotUrl = $(tr).find('td a[href$=".png"]').attr('href');
  // rowData.push(screenshotUrl);
  tableRows.push(rowData);
});

// 创建Excel工作簿和工作表
const workbook = XLSX.utils.book_new();
const worksheet = XLSX.utils.aoa_to_sheet(tableRows);
XLSX.utils.book_append_sheet(workbook, worksheet, '测试结果');

// 导出Excel文件
XLSX.writeFile(workbook, excelOutputPath);
console.log(`Excel报告已成功生成:${excelOutputPath}`);
  1. 运行脚本
    在终端执行:
node html-to-excel.js

注意:一定要打开你的HTML报告源码,确认表格的类名、结构是否和脚本里的选择器匹配,不同版本的protractor-html-screenshot-reporter生成的HTML可能略有差异。

方法二:用Python快速转换(适合熟悉Python的同学)

如果你更习惯用Python,Pandas自带的HTML表格读取功能会让这个操作非常简洁:

  1. 安装依赖包
pip install pandas beautifulsoup4 openpyxl
  1. 编写转换脚本
    新建html_to_excel.py:
import pandas as pd
from bs4 import BeautifulSoup

# 替换成你的HTML报告路径
html_path = "./reports/protractor-report.html"
# 输出Excel路径
excel_output = "./reports/test-results.xlsx"

# 读取HTML文件
with open(html_path, 'r', encoding='utf-8') as file:
    soup = BeautifulSoup(file, 'html.parser')

# 找到测试结果表格 - 同样要根据实际结构调整选择器
result_table = soup.find('table', class_='results-table')

# 把表格转换成DataFrame
df = pd.read_html(str(result_table))[0]

# 保存为Excel文件(index=False是去掉自动生成的行索引)
df.to_excel(excel_output, index=False)
print(f"Excel文件已导出:{excel_output}")
  1. 运行脚本
python html_to_excel.py

方法三:手动导出(适合少量报告,快速操作)

如果只是偶尔处理一两份报告,手动复制粘贴最省事:

  • 用浏览器打开你的HTML报告,找到测试结果的表格区域
  • 按住鼠标拖选整个表格(或者先按Ctrl+A全选,再调整只保留表格内容)
  • 按Ctrl+C复制
  • 打开Excel,选中任意空白单元格,按Ctrl+V粘贴
  • 调整列宽、格式后,保存文件即可

额外提示

  • 如果你的报告里包含截图,脚本中可以提取截图的本地路径或链接,添加到Excel的单独列中,方便后续直接查看截图。
  • 要是需要批量处理多个HTML报告,可以在脚本里添加循环逻辑,遍历指定文件夹下的所有HTML文件,合并数据到同一个Excel或者生成单独的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:02:17