cy.get('[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
上面是我的复选框的路径。由于有两个单引号,我也尝试将它们连接起来,但是没有成功
cy.get('[data-ng-show="destact['+'dest'+'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
反引号也是选择器的有效分隔符,
cy.get(`[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding`)
假设选择器[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding
是正确的选择器,您可以使用反斜杠转义单引号:
cy.get('[data-ng-show="destact['dest'].length > 0"] > .checkbox-block > :nth-child(1) > .ng-binding').click()
在使用复杂表达式
选择此属性时,似乎出现了两个问题<div data-ng-show="destact['dest'].length > 0" ></div>
- 引号冲突
- 方括号过早结束了选择器。
如果只有一个元素的表达式以destact
cy.get("div[data-ng-show^=destact]")
.should('have.attr', 'data-ng-show', "destact['dest'].length > 0")
.find('.checkbox-block > :nth-child(1) > .ng-binding')
如果cy.get("div[data-ng-show^=destact]")
选择了多个元素,您可以为确切的表达式添加一个过滤器
cy.get("div[data-ng-show^=destact]")
.filter((i, el) => {
return Cypress.$(el).attr('data-ng-show') === "destact['dest'].length > 0"
})
.find('.checkbox-block > :nth-child(1) > .ng-binding')