提问人:Hina Iqbal 提问时间:10/17/2023 最后编辑:V.KriepsHina Iqbal 更新时间:10/18/2023 访问量:35
在 Angular 中验证表单字段和处理错误(版本 13.3.0)
Validating Form Fields and Handling Errors in Angular (Version 13.3.0)
问:
我正在使用 Angular 版本 13.3.0。我正在尝试验证具有各种验证规则的表单,例如“名字为必填项”,以及其他字段,例如“姓氏”、“性别”、“用户类型”、“用户名”和“密码”。
如何使用 Cypress 'should' 来验证这些表单字段并处理可能出现的任何验证错误?
describe('Form Validation', () => {
it('Should validate form fields and handle errors', () => {
cy.visit('http://qa.aquators.com');
// Fill out the form
cy.get('[data-cy="firstname"]').type('');
cy.get('[data-cy="lastname"]').type('');
// cy.get('input[data-cy="male"]').click({ force: true });
// cy.get('input[data-cy="finance_manager"]').click({ force: true });
cy.get('[data-cy="username"]').type('');
cy.get('[data-cy="password"]').type('');
// Submit the form
cy.get('[btn-id="submit"]').click();
// Check validation errors
cy.get('[data-cy="firstname-error"]').should('contain', 'First Name is required');
cy.get('[data-cy="lastname-error"]').should('contain', 'Last Name is required');
cy.get('[data-cy="gender-error"]').should('contain', 'Gender is required');
cy.get('[data-cy="usertype-error"]').should('contain', 'User Type is required');
cy.get('[data-cy="username-error"]').should('contain', 'Username is required');
cy.get('[data-cy="password-error"]').should('contain', 'Password is required');
// Handle validation errors as needed
});
});
答:
3赞
Tiana
10/18/2023
#1
您可以通过链接 “connector” 查询来检查该属性。validationMessage
.its('validationMessage')
通常,当标签之间有一些文本时,直接在元素查询之后使用,例如 ..should('contain', ...something)
<div>Some text is here</div>
但元素存储您使用该属性键入的值,以及该属性中的错误消息。<input>
value
validationMessage
该命令用于将主题从元素更改为值。it('some-property')
some-property
cy.get('[data-cy="firstname-error"]')
.its('validationMessage')
.should('contain', 'First Name is required')
cy.get('[data-cy="lastname-error"]')
.its('validationMessage')
.should('contain', 'Last Name is required')
cy.get('[data-cy="gender-error"]')
.its('validationMessage')
.should('contain', 'Gender is required')
cy.get('[data-cy="usertype-error"]')
.its('validationMessage')
.should('contain', 'User Type is required')
cy.get('[data-cy="username-error"]')
.its('validationMessage')
.should('contain', 'Username is required')
cy.get('[data-cy="password-error"]')
.its('validationMessage')
.should('contain', 'Password is required')
作为旁注,您也可以将该属性合并到以下内容中:.should()
cy.get('[data-cy="password-error"]')
.should('have.property', 'validationMessage', 'Password is required')
这是一项精确的检查,与部分检查相反。contains
评论