如何在Cypress中获取div标签内的文本并验证为"Saved"
问题解答
错误原因分析
- 你写的
cy.get(div)存在语法错误:div是选择器字符串,必须包裹在引号内,否则会被Cypress识别为未定义的变量,无法正确执行元素查询 - 目标元素是Angular动态渲染的ui-grid组件内容,未指定父级范围的全局查询容易匹配到错误节点,或因为元素渲染时序问题找不到目标
正确定位代码方案
方案1:通过父级role属性缩小查询范围(最稳定)
优先利用role="row"这个语义化属性锁定父行,再查询后代包含指定文本的元素:
// 先锁定role为row的div,再查找内部文本为Saved的div cy.get('div[role="row"]') .contains('div', 'Saved') .should('have.text', 'Saved') // 断言文本完全匹配
如果元素渲染较慢,可以手动延长超时时间:
cy.get('div[role="row"]', {timeout: 10000}) // 最长等待10秒 .find('.ui-grid-cell-contents') // 直接匹配单元格内容的固定类名 .should('have.text', 'Saved')
方案2:按层级定位第三个div(匹配你要找第三个div的需求)
如果明确要按层级取目标父行下的第三个div,可使用索引查询:
cy.get('div[role="row"]') .find('div') .eq(2) // 索引从0开始计数,第三个div对应索引2 .find('.ui-grid-cell-contents') .should('have.text', 'Saved')
错误提示翻译
你收到的英文错误提示翻译为:
预期找到元素: #31 634108833080-0-uiGrid-0009-cell > .ui-grid-cell-contents,但始终未找到该元素。
内容的提问来源于stack exchange,提问作者shreyas
相关产品推荐
相关产品推荐

