假设这#dwfrm_contactus_firstname
是一个输入元素,像这样
<input maxlength="50" />
您将从value
属性而不是text
属性中读回文本。
您的测试可能如下所示
it('ensure first name limits entry to 50 char', () => {
const firstNameText = '123456789012345678901234567890123456789012345678901234567890';
cy.get(FIRST_NAME)
.type(firstNameText)
.should('have.value', firstNameText.substring(0,50));
})
您可以通过将子字符串增加到 51 来检查测试本身,然后它应该会失败。
如果要直接查看数字长度,需要将主题从元素改为文本,
it('ensure first name limits entry to 50 char', () => {
const firstNameText = '123456789012345678901234567890123456789012345678901234567890';
cy.get(FIRST_NAME) // subject is <input> element
.type(firstNameText)
.invoke('val') // change subject to input's value
.should('have.length', 50); // assert the length property is 50
})
为了更好地衡量,在测试输入时,首先清除它是有用的,
cy.get(FIRST_NAME)
.clear() // ensure empty input
.type(firstNameText)
...