当输入字段为空时,量角器会在标签输出上自动显示错误消息

时间:2017-09-20 18:22:19

标签: protractor angular2-forms

我有一个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中处理验证了。

非常感谢任何帮助。

2 个答案:

答案 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();
     })