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

Cypress.io中如何点击与指定待办文本对应的同名markAsCompleted勾选图标

错误原因说明

你编写的代码执行报错有两个核心原因:

  • cy.get('[data-cy=markAsCompleted]')会匹配到页面上全部3个勾选span元素,Cypress默认禁止对存在歧义的多个元素直接执行操作
  • 目标文本Fill Gas和勾选span是同级节点,同属于td元素的子内容,勾选span本身没有任何内部文本,因此调用.contains('Fill Gas')无法匹配到任何元素
正确实现方案

最符合Cypress最佳实践的写法是先定位到包含Fill Gas文本的待办行,再在该行范围内查找勾选按钮:

cy.contains('[data-cy="todoItem"]', 'Fill Gas')
  .find('[data-cy="markAsCompleted"]')
  .click()

写法说明:

  • cy.contains传入选择器+文本两个参数时,会直接返回包含指定文本的对应选择器元素,也就是Fill Gas对应的待办行节点,不会匹配到其他无关元素
  • find方法只会在前面匹配到的单条待办行范围内查找元素,不会出现多元素匹配歧义的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 09:42:02