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

如何在Cypress中正确断言动态数组变量与DOM输入值匹配?

Cypress中校验数组格式输入框Value的正确方式

方法一:直接匹配字符串形式的数组

输入框的value属性只能存储字符串,浏览器会自动把HTML中写的数组转为对应字符串格式。你可以将动态变量ids转为相同格式的字符串,直接做全等断言:

// 把数组转为和输入框value一致的字符串
const expectedValue = JSON.stringify(ids);
cy.get('input[name="ids"]').should('have.value', expectedValue);

方法二:解析字符串后校验数组内容

如果需要校验数组的具体内容(而非严格匹配字符串格式),可以先把输入框的value解析为数组,再做深度断言:

cy.get('input[name="ids"]').invoke('val').then(inputValue => {
  // 将输入框的字符串值解析为数组
  const parsedIds = JSON.parse(inputValue);
  // 断言解析后的数组和原ids内容完全一致
  expect(parsedIds).to.deep.equal(ids);
});

原方法失效原因

输入框的value本质是字符串类型,哪怕HTML里写的是数组,最终也会被转为字符串。Array.isArray(String(ids))必然返回false,因为它判断的是一个字符串是否为数组,逻辑本身不成立,所以无法生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:39:39