2015-06-02 26 views
1

我想知道如何在.each()函數上使用頁面對象變量。如何在量角器.each()函數上使用頁面對象變量?

該場景是我每次點擊刪除鏈接,甜蜜的警報確認將顯示,我必須確認該對話框刪除數據。

這裏是我的網頁對象:

'use strict'; 

// page object name 
var Data = function() 
{ 
    // all delete links 
    this.delete_links = element.all(by.css('div[ng-click="delete(Data.id)"]')); 

    // confirm button 
    this.btn_confirm = element(by.css('.confirm')); 

    // delete function 
    this.delete = function() 
    { 
     // delete all links with confirmation 
     this.delete_links.each(function(element, index) 
     { 
      // click delete link 
      element.click().then(function() 
      { 
       browser.sleep(1000); 
      }); 

      // click yes 
      this.btn_confirm.click().then(function() 
      { 
       browser.sleep(1000); 
      }); 
     }); 
    }; 
}; 

module.exports = Data; 
+0

但您遇到什麼困難? 'delete'函數是否符合你期望的功能?謝謝。 – alecxe

+0

@alecxe不,它說「TypeError:無法讀取未定義的屬性」btn_confirm「」Sir。 –

回答

0

this裏面的「每個」功能/回調沒有指向的頁面對象本身。要修復它,請定義一個變量並將其設置爲this.btn_confirm

this.delete = function() 
{ 
    // delete all links with confirmation 
    this.delete_links.each(function(element, index) 
    { 
     var confirmButton = this.btn_confirm; 

     // click delete link 
     element.click().then(function() 
     { 
      browser.sleep(1000); 
     }); 

     // click yes 
     confirmButton.click().then(function() 
     { 
      browser.sleep(1000); 
     }); 
    }); 
};