2017-02-20 36 views
1

に迅速な変化を知覚しない:分度器は、これは私の分度器のテストです

it("should check email validity", function(){ 
     var resetButton = element(by.id('reset-button')); 
     element(by.model('Contact.email')).sendKeys('nick'); 
     element.all(by.css('.form-control-error')).each(function (elem, index) { 
     if (index===1) { 
      expect(elem.isPresent()).toBe(true); 
      element(by.model('Contact.email')).sendKeys('@gmail.com').then(
      function(){ 
       expect(elem.isPresent()).toBe(false); 
      } 
      ) 
     } 
     }); 
    }); 

そのコードの後ろにいくつかの入力テキストを持つフォームがあります。 第2にはメールが1つ含まれています。 form-control-errorは、電子メール形式が正しくない場合に表示されるエラーメッセージです。最初にexpect(elem.isPresent()).toBe(true);がエラーメッセージがUIから消えても、2回目にテストに合格します。分裂器は速い変化を知覚していないようです。しかし、約束の中に入っているはずです。あなたはそれについて何か説明がありますか?あなたがキーを送った後element to become not present ("stale")待ちを追加することで、物事の信頼性を高める必要があり

答えて

1

element(by.model('Contact.email')).sendKeys('@gmail.com'); 

var EC = protractor.ExpectedConditions; 
browser.wait(EC.stalenessOf(elem), 5000); 
expect(elem.isPresent()).toBe(false); 
+0

私は次のようなメッセージになっています:失敗:私は問題を発見した5007ms –

+0

後にタイムアウトし待機を! ng-ifの代わりにng-showを使用しました –