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
相关产品推荐
相关产品推荐

