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

新手求助:编写JavaScript函数获取指定XPath元素文本并循环断言

基于XPath获取元素并完成断言验证的JavaScript函数

这里是修改后的函数,能实现你需要的功能:

function javaScriptStep() {
  // 定义需要验证的预期文本列表
  const expectedTexts = ['Economy', 'Business', 'Latitude', 'Premium'];
  // 目标XPath表达式
  const targetXPath = "//ui-table-1/div/following-sibling::div[@role='title']";
  // 执行XPath查询,获取有序的元素快照
  const elementsSnapshot = document.evaluate(
    targetXPath,
    document,
    null,
    XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
    null
  );

  // 循环遍历每个元素,逐一做断言验证
  for (let i = 0; i < elementsSnapshot.snapshotLength; i++) {
    const currentElement = elementsSnapshot.snapshotItem(i);
    // 取出元素文本并去除首尾空白
    const actualText = currentElement.textContent.trim();
    // 断言实际文本与预期一致,不一致则输出错误信息
    console.assert(
      actualText === expectedTexts[i],
      `第${i + 1}个元素验证失败:预期文本为"${expectedTexts[i]}",实际为"${actualText}"`
    );
  }

  // 回调返回验证完成的结果
  callback('所有元素断言验证完成');
}

关键步骤说明

  • 先定义expectedTexts数组,存放你需要验证的4个文本,注意顺序要和XPath返回的元素顺序对应
  • 使用document.evaluate执行XPath查询,选择ORDERED_NODE_SNAPSHOT_TYPE可以保证按文档顺序获取元素
  • 循环中取出每个元素的文本,用trim()处理掉多余的首尾空格,避免空白字符导致断言失败
  • 用console.assert做断言,不匹配时会在控制台打印错误;如果是在测试框架(比如Cypress、Playwright)中使用,可以替换成框架自带的断言方法
  • 最后通过callback返回验证完成的状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:55:30