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

Cypress使用.eq()选中列表项时仍校验其他项该如何解决?

Cypress 列表项元素匹配错误问题解决

错误根因

核心问题是对 Cypress 元素查询命令的作用范围理解有误:

  • cy.get() 命令默认从整个DOM根节点开始查询元素,不会继承之前操作选中的元素上下文,所以你在.eq(1)选中第二个<ion-item>后调用的cy.get()依然是全局匹配元素,自然找到了第一个列表项的对应按钮文本,导致断言失败。
  • 你的原代码中属性选择器未闭合右中括号(例如[data-cy=photo-add-button缺少结尾的]),也可能存在匹配异常的隐患。

修正方案

要在已选中的元素范围内查询子元素,需要使用.find()命令替代.get(),修正后的测试代码如下:

it('Ensures when Mangelzustand does contains photos, the "Hinzufügen" Button Text does not exist', () => {
    cy.get("ion-item")
      .eq(1)
      // 在当前选中的第二个ion-item子元素范围内查找
      .find("[data-cy=photo-add-button-text]")
      .should("not.contain", "Hinzufügen");
});

如果需要更严谨的校验,也可以直接断言该元素在第二个列表项中不存在:

cy.get("ion-item").eq(1).find("[data-cy=photo-add-button-text]").should("not.exist");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:18:01