我拿到这个网页是为了测试索赔编号.但我不能提取同样的东西.

<h1 class="jss41 undefined" style="text-transform: capitalize; display: flex; align-items: center; margin-bottom: 0.5rem;">
"Claims #"
"75078"
</h1>

我想要获取的XPath是

export const getClaimsHeader = () => cy.xpath("//h1[contains(@class,'undefined')]")

这是我正在try 获取索赔编号的代码

  getClaimsHeader()
  .each((header) => {
    claimNum = header.text().split('#');
    actualClaimNumber = claimNum[1];
    
  })
  .then(() => {
    expect(claimNumber).to.equal(actualClaimNumber);
  });

但是actualClaimNumber显示为空白,因为header.text()只返回"Claims#"

推荐答案

您可能在<h1>中包含了TextNode,尽管这在HTML中并不明显.

如果是这样的话,下面是一个可以try 的函数,它应该返回数组中的所有extNode:

function getTextNodes($el) {
  const childNodes = $el[0].childNodes
  const textNodes = [...childNodes].filter(child => child.nodeType === Node.TEXT_NODE)
  const texts = textNodes.map(textNode => textNode.nodeValue.trim())
  return texts
}

像这样使用它

getClaimsHeader().each((header) => {
  const texts = getTextNodes(header);
  console.log(texts)              // check which part of the array is the number
  const claim = texts[1]          // for example
})

既然您使用的是.each(),我想应该有多个标题?

如果是这样,您的.then()不会收到每个索赔编号,而只收到最后一个索赔编号.

Typescript相关问答推荐

对可变位置的父对象的TypScript空判断

TypScript错误:类型{ children:ReactNode; }与动态React组件中的IntrinsicLedger类型没有共同的属性

为什么在将条件返回类型的字符串赋给数字时没有类型错误?

如何根据数据类型动态注入组件?

是否可以根据嵌套属性来更改接口中属性的类型?

根据上一个参数值查找参数类型,也返回类型

创建一个根据布尔参数返回类型的异步函数

获取函数中具有动态泛型的函数的参数

TypeScrip原始字符串没有方法

Angular文件上传到Spring Boot失败,多部分边界拒绝

TypeError:正文不可用-NextJS服务器操作POST

如何将定义模型(在Vue 3.4中)用于输入以外的其他用途

为什么ESLint会抱怨函数调用返回的隐式`any`?

如何从输入中删除值0

RXJS将对键盘/鼠标点击组合做出react

VITEST警告:当前的测试运行器不支持After Each/teardown挂钩

如何在Next.js和Tailwind.css中更改悬停时的字体 colored颜色

TS不能自己推断函数返回类型

如何将对象的字符串文字属性用作同一对象中的键类型

如何在TypeScript中将元组与泛型一起使用?