我使用material-ui作为我的css框架,我想选择包含特定文本的按钮。我的当前代码:
cy.get('button').contains('Edit Claim').should('be.disabled');
失败的原因是material ui的button组件输出了一个div中的文本,所以cypressAssert了div的禁用属性。我希望它Assert到button。编辑:x1c 0d1x
6vl6ewon1#
我用cy.contains('button', 'Edit Claim').should('be.disabled');解决了这个问题
cy.contains('button', 'Edit Claim').should('be.disabled');
h7wcgrx32#
在Material-UI demo page上,标签位于子<span>(而不是<div>)中,
<span>
<div>
<button class="MuiButtonBase-root MuiButton-root MuiButton-contained Mui-disabled Mui-disabled" tabindex="-1" type="button" disabled=""> <span class="MuiButton-label">Disabled</span> </button>
但是可能会有变化-在任何情况下,您都可以通过将.parent()添加到测试中来引用按钮
.parent()
cy.visit('https://material-ui.com/components/buttons/'); cy.get('button') .contains('Disabled') // span is the subject .parent() // move up to the button .should('be.disabled');
k5hmc34c3#
可能有两个按钮有相同的文本,那么更好的方法是为那个MUI按钮设置data-cy属性:
data-cy
<Button data-cy="ok-btn">OK</Button>
那就去塞普里斯
cy.get('[data-cy="ok-btn"]').click();
3条答案
按热度按时间6vl6ewon1#
我用
cy.contains('button', 'Edit Claim').should('be.disabled');
解决了这个问题h7wcgrx32#
在Material-UI demo page上,标签位于子
<span>
(而不是<div>
)中,但是可能会有变化-在任何情况下,您都可以通过将
.parent()
添加到测试中来引用按钮k5hmc34c3#
可能有两个按钮有相同的文本,那么更好的方法是为那个MUI按钮设置
data-cy
属性:那就去塞普里斯