typescript 如何在返回数组的cypress中将标题行转换为数组

du7egjpx  于 2023-03-13  发布在  TypeScript
关注(0)|答案(1)|浏览(76)

我正在遍历ag-grid的标题,并希望将其保存为数组

我可以很容易地通过

cy.get("#myGrid").find('.ag-header-cell').invoke('text').then((text) => {
  var headArr:Array<String>;
  headArr = text.trim()
})

但这不是创建一个数组,我还想知道如何返回这个数组并将其赋值给一个变量

atmip9wb

atmip9wb1#

第一部分cy.get("#myGrid").find('.ag-header-cell')将为您提供顶部(标题)行中的所有单元格。
如果你对元素集合执行.invoke('text'),你会得到字符串中的所有文本,它们之间有不同长度的空格,很难知道在哪里分割成数组元素。
相反,您可以将元素集合作为数组获取,并通过.map()函数(不是Cypress命令,它是Javascript的内置命令)对每个元素调用text()
当然,您可能知道,Cypress使用aliases来存储变量,因此只需.wrap()该文本数组并创建一个别名变量。

cy.get("#myGrid").find('.ag-header-cell')
  .then(headerElements => {

    const headerArray = Array.from(headerElements);
    const headerTexts = headerArray.map(header => header.invoke('text'))
    cy.wrap(headerTexts).as('headerTexts)
  })

...

// using my array alias variable
cy.get('@headerTexts').then(headerTexts => {
  ...       
})

相关问题