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

如何从不同网页提取div元素?如何从Allure报告页抓取指定div到独立页面?

从Allure报告仪表盘拉取百分比展示div的实现方法

首先先定位目标元素的选择器:打开原Allure报告页,按F12调出开发者工具,用元素拾取工具点击你需要的百分比卡片,记录该div的类名或ID。Allure默认仪表盘的通过率百分比元素通用选择器为.widget__chart-donut__percentage,你可以直接用这个选择器做测试。

下面分不同场景给出实现方案:

场景1:原Allure报告与新网页同域部署

直接拉取原报告页面DOM,解析后提取目标元素插入新页面即可,示例代码如下:

新页面HTML部分

<!DOCTYPE html>
<html>
<head>
  <title>测试通过率展示</title>
  <!-- 可选:引入Allure报告的样式文件,保证展示效果和原报告一致 -->
  <link rel="stylesheet" href="/allure-report/styles.css">
</head>
<body>
  <h1>测试通过率</h1>
  <!-- 用于容纳拉取到的百分比div的容器 -->
  <div id="allure-percentage-wrap"></div>

  <script>
    async function getPercentageDiv() {
      try {
        // 替换为你的Allure报告实际访问路径
        const res = await fetch('/allure-report/index.html');
        const htmlStr = await res.text();
        // 解析HTML为DOM对象
        const domParser = new DOMParser();
        const allureDom = domParser.parseFromString(htmlStr, 'text/html');
        // 替换为你实际定位到的目标元素选择器
        const targetDiv = allureDom.querySelector('.widget__chart-donut__percentage');
        if (targetDiv) {
          document.getElementById('allure-percentage-wrap').appendChild(targetDiv);
        }
      } catch (e) {
        console.error('拉取数据失败:', e);
      }
    }
    // 页面加载完成后执行
    window.addEventListener('load', getPercentageDiv);
  </script>
</body>
</html>

场景2:原Allure报告与新网页跨域部署,且你有权限调整Allure报告的生成/部署配置

有两种可选方案:

  • 配置Allure报告所在服务的CORS响应头,添加Access-Control-Allow-Origin: 你的新网页域名,允许跨域访问后即可用场景1的代码拉取
  • 更轻量的方案:生成Allure报告时直接导出百分比数据到单独的JSON文件,不需要拉取整个页面解析。你可以在生成报告的脚本中添加后置处理逻辑,示例shell脚本如下:
# 生成Allure报告
allure generate ./allure-results -o ./allure-report
# 提取通过率数据写入单独的json文件(需要安装jq工具处理json)
total=$(jq '.statistic.total' ./allure-report/widgets/summary.json)
passed=$(jq '.statistic.passed' ./allure-report/widgets/summary.json)
echo "{\"passRate\": $((passed * 100 / total))}" > ./allure-report/pass-rate.json

新页面直接拉取这个JSON文件渲染即可,比解析整个HTML性能更高。

场景3:不需要实时同步数据,仅静态展示

直接在原Allure报告页用开发者工具选中目标div,右键选择「复制」-「复制outerHTML」,直接粘贴到你的新网页代码中,再把对应样式复制过去即可,不需要额外写JS逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:24:02