我试图用cypress mat-checkbox
方法检查check()
元素,即使添加force
参数也是如此。示例:
Cypress.Commands.add('changeEmailLayoutCheckbox', () =>
cy
.get(EMAIL_LAYOUT_CHECKBOX)
.check({ force: true })
);
我遇到以下错误
cy.check()只能在:checkbox和:radio上调用。你的主题是 a:
该消息非常清楚,但是问题是我在mat-checkbox
更改时发出了一些事件,该事件将参数设置为我的请求。我也尝试过使用click()
,但没有触发提到的事件。
答案 0 :(得分:2)
该复选框是mat-checkbox的子元素。您将需要选择内部子项,然后单击它。我不得不强迫它工作。我将看看是否有更好的方法可以做到这一点。
describe('how to check mat-checkbox', () => {
it('check the input', () => {
cy.visit('https://material.angular.io/components/checkbox/overview');
cy.get('#mat-checkbox-1-input').click({force:true});
//**** OR ***********
cy.get('#mat-checkbox-1').find('input').click({force:true});
});
});
答案 1 :(得分:0)
根据我的实验,只要选择了正确的元素,语法就可以保持非常简单,而不会强制使用。
总结示例:
<div id="parent">
<mat-checkbox ...></mat-checkbox>
<!-- assuming there is no other input or mat-checkbox here -->
</div>
cy.get('#parent mat-checkbox').click() # interact
cy.get('#parent input').should('be.checked') # check state