我有这个元素
<label for="prod-field">Project
<span class="aui-icon">Required</span>
</label>
我要检查Label文本是否等于Project
cy.get('[for="prod-field"]').should('have.text', 'Project')
但结果是
-'ProjectRequired'
+'Project'
所以这个选择器也占用了...
如何独立选择并检查?
答案 0 :(得分:1)
您可以执行以下操作:
cy.get('[for="prod-field"]').should(($el) => {
expect(
$el
.contents() // Grab all contents
.first() // The text node you're looking for
.text() // Get the text
.trim() // And trim the white space
).to.eq('Project');
});
如上所述,我们可以做到这一点,但是选择器过于复杂。如果可以,建议您对HTML进行一些调整:
<label for="prod-field"
><span class="label-text">Project</span>>
<span class="aui-icon">Required</span>
</label>
然后,您可以简单地执行以下操作:
cy.get('[for="prod-field"] .label-text').should('have.text', 'Project');
答案 1 :(得分:1)
您的定位器选择了标签及其所有内容,只需将定位器更改为如下所示的跨度即可:
cy.get('[for="prod-field"] span.label-text').should('have.text', 'Project')