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

如何在Cypress中将ag-grid表头行转为数组并返回赋值

获取ag-grid表头并转为数组的Cypress实现

问题分析

你原来的代码用invoke('text')会把所有表头单元格的文本拼接成一个字符串,自然没法得到数组。得逐个获取每个表头单元格的文本再收集起来。

正确代码实现

方法1:直接在回调里处理数组

cy.get("#myGrid").find('.ag-header-cell').each(($el, index, $list) => {
  // 逐个获取每个表头单元格的文本,存入数组
  return Cypress.$($el).text().trim()
}).then(headArr => {
  // 这里headArr就是整理好的表头数组
  console.log(headArr)
  // 后续可以直接在这里使用这个数组做断言或其他操作
})

方法2:把数组存为Cypress别名,后续随时调用

如果需要在多个地方使用这个数组,可以用.as()存别名:

cy.get("#myGrid").find('.ag-header-cell').each(($el) => {
  return Cypress.$($el).text().trim()
}).as('headerArray')

// 后续用@headerArray取出
cy.get('@headerArray').then(headArr => {
  // 使用数组,比如断言表头是否符合预期
  expect(headArr).to.deep.equal(['列1', '列2', '列3'])
})

关键说明

  • each()会遍历每个匹配到的DOM元素,返回每个元素处理后的文本,最后.then()里就能拿到完整的数组。
  • Cypress是异步操作,不能直接把数组赋值给普通变量(比如let arr; cy.get(...).then(res => arr = res),后续同步代码里arr会是undefined),必须在.then()回调或者通过别名来使用数组。

内容的提问来源于stack exchange,提问作者Anil Tiwari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:17:06