如何获取元素的所有子元素的所有链接

How to get all the links of all children of an element

我有一个可以定位的元素:

cy.get('[foo="bar"]')

现在我试图找到所述元素内的所有 a 元素:

cy.get('[foo="bar"] a') 这应该给我所有具有父级(或祖父级 foo,并且是 <a>.

的元素

但是,这似乎只 select 一个元素(即父 foo 和 a),而不是所有元素,因为我只保存了一个 href。

这是我用来保存结果的:

cy.get('[foo="bar"]').invoke('attr', 'href')
            .then((hrefs) => {
            cy.writeFile('./cypress/downloads/results.txt', hrefs)
        });     

如何 select [foo="bar"] 的所有 <a> 子项,然后如何提取它们的所有 href 属性?

我认为步骤 .invoke('attr', 'href') 只是返回第一步,参见 .attr()

Get the value of an attribute for the first element in the set of matched elements

所以,也许

cy.get('[foo="bar"] a')
  .then($els => {
    const hrefs = [...$els].map(el => el.getAttribute('href'))
    cy.writeFile('./cypress/downloads/results.txt', hrefs)
  })