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

Cypress技术问询:如何获取指定键下的所有键名(非键值)

获取Cypress响应中指定对象的键名数组

在Cypress的.then()回调里,你可以直接利用JavaScript原生方法提取目标对象的所有键名,生成你需要的数组。结合你的示例JSON结构,具体实现如下:

完整代码示例

cy.request('你的接口地址')
  .then((response) => {
    // 从响应体中定位到image对象
    const imageObject = response.body.widget.image;
    
    // 提取image对象的所有键名,返回数组
    const imageKeyNames = Object.keys(imageObject);
    
    // 可选:将数组存入Cypress环境变量,方便后续测试用例调用
    Cypress.env('imageKeyNames', imageKeyNames);
    
    // 可选:验证结果是否符合预期
    expect(imageKeyNames).to.deep.equal(['src', 'name', 'hOffset', 'vOffset', 'alignment']);
  });

关键说明

  • Object.keys():这是JavaScript原生方法,会返回一个包含对象所有可枚举键名的数组,完全满足你“只存键名不存值”的需求。
  • 存储复用:如果需要在其他测试步骤中使用这个数组,用Cypress.env()存储是最直接的方式;如果仅在当前回调内使用,直接用变量即可。
  • 边界处理:如果image对象可能不存在,建议先做存在性判断避免报错:
    if (imageObject) {
      const imageKeyNames = Object.keys(imageObject);
      // 后续逻辑
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:31:06