Cypress操作遇路径错误无法选中checkbox 单引号拼接无效如何解决
Cypress checkbox选择器路径报错解决方法
你遇到的报错核心原因是JS字符串引号嵌套冲突:你的选择器外层用单引号包裹,内部dest两侧也使用了单引号,会直接导致JS字符串提前闭合,触发语法错误,你之前用字符串拼接的方式没有解决引号冲突的问题,因此不生效。
你可以从下面几种方案里选一种修改即可:
- 方案1:使用反引号(模板字符串)包裹整个选择器,无需额外转义内部的引号,写法最简单
代码示例:cy.get(`[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding`).click() - 方案2:转义内层的单引号,如果你要保留外层用单引号的写法,给内部
dest两侧的单引号加反斜杠转义即可
代码示例:cy.get('[data-ng-show="destact[\'dest\'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
额外优化建议:你当前使用的
ng-前缀属性是 Angular 框架自动生成的,还有:nth-child这类依赖DOM结构顺序的选择器稳定性都比较差,后续页面迭代很容易失效。如果有条件建议给目标checkbox加专属的data-testid属性,选择器直接写cy.get('[data-testid="xxx"]')会更稳定。
内容的提问来源于stack exchange,提问作者Siya Shrestha
相关产品推荐
相关产品推荐

