2016-05-29 6 views
2

ボタンテキストに「次へ」が表示されている場合のみ、ログイン画面で[送信]ボタンをクリックしようとしています。下の最後の行では、「未定義のプロパティ 'submit'を読み取ることができません」というエラーが表示されます。私はページオブジェクトの中で、約束を正しく解決していないと思う。誰かが解決策を提案する手助けができればthen()関数の内部で、thisはもうあなたのページのオブジェクトを指していないとき、私は、この場合..ページオブジェクト - 約束処理エラー "未定義のsubmit 'プロパティ'を読み取ることができません

//Login Page object 

var LoginPage = function() { 

    this.email = element(by.model('loginCtrl.username')); 
    this.password = element(by.model('loginCtrl.password')); 
    this.submit = element(by.css('[ng-click="loginCtrl.login()"]')); 

    this.get = function(){ 
     browser.get('/#/login'); 
    }; 

    this.login = function() { 

     this.email.clear(); 
     this.email.sendKeys(browser.params.login.user); 

     this.submit.getText().then(function (text) { 
      if (text == "Next") { 
       //***ERROR below. 
       //***Cannot read property 'submit' of undefined 
       this.submit.click(); 
      } 
    }); 
+0

「this」は何を期待していますか?この場合、定義されていないためです。 –

答えて

2

それをいただければと思います。一般的なアプローチは、外側のスコープ内のページオブジェクトへの参照を作成することです。

this.login = function() { 

    this.email.clear(); 
    this.email.sendKeys(browser.params.login.user); 

    var self = this; 
    this.submit.getText().then(function (text) { 
     if (text == "Next") { 
      self.submit.click(); 
     } 
    }); 
} 
関連する問題