我有一个angular2应用程序,我正在尝试编写端到端测试用例以自动化。我刚开始学习Protractor,并尝试为表单字段实现负面测试用例,如果有任何字段为空,应显示错误消息。我已尝试过类似下面的内容来自动化表单及其工作正常。 在我的规格中 -
import userDetailsPage from './userDetails.e2e-po;
it('should fill out User Details', () => {
const userDetail: IUserDetail = {
firstName: 'Lorem',
lastName: 'Ipsum'
};
userDetailsPage.populateUserDetails(userDetail);
});
在userDetails.e2e-po -
中populateUserDetails(details: IUserDetail) {
this.fillFirstName(details.firstName)
.fillLastName(details.lastName)
return this;
}
我正在编写下面的代码,它会自动输入firstName和lastName字段。
fillLastName(last: string) {
let el = element(by.css('input[name="lastName'));
el.clear().then(() => {
el.sendKeys(last);
});
return this;
}
以上情况可行。但我也试图实现一个我不输入名字或姓氏字段的情况,应该给我一个错误信息。可以让我知道我应该添加什么来实现这一点。
我已经在我的HTML中处理验证了。
非常感谢任何帮助。
答案 0 :(得分:0)
而不是details.firstname和details.lastname放置空字符串,然后验证页面上发生的错误。
答案 1 :(得分:0)
我认为您可以尝试以下方法作为可重用功能
function formValidate(donefn){
newProjBtn.click().then(async function () {
var lastName_fld = element(by.css('input[name="lastName'));
await lastName_fld.sendKeys("", protractor.Key.TAB);
//browser.sleep(2000);
var elm = element(by.css(".error-message"));
elm.isPresent().then(function(result){
if(result){
console.log("Error message displayed")
//some more code to do like selecting the field and enter the test
return result;
}else{
console.log("Error message not displayed")
return result;
}
})
donefn();
})