2015-11-02 76 views
3

我遇到了頁面對象的概念,並在量角器中使用它來編寫測試,但我面臨一個問題。舊代碼如下。從量角器中的元素內訪問內部元素

var productList = element.all(by.repeater('product in contractsCtrl.contracts')); 
productList.get(0).element(by.model('qty')).sendKeys(20); 

我組織了一個類的代碼,如

var Product = { 
    productList : element.all(by.repeater('product in contractsCtrl.contracts')), 
    qtyElem : element(by.model('qty')), 
    setProduct : function (pos) { 
    this.productElem = this.productList.get(pos); 
    } 
} 

我們實現的場景(如代碼片段)與頁面對象,我修改了代碼,

var Product = require('product.js'); 
Product.setProduct(0); 

我在這裏卡在如何訪問productElem內的qtyElem

回答

4

您可以創建一個方法setProductQty(),其中規定數量上某個位置的產品:

var Product = { 

    productList : element.all(by.repeater('product in contractsCtrl.contracts')), 

    setProductQty: function (pos, qty) { 
     var productElem = this.productList.get(pos); 
     productElem.element(by.model('qty')).sendKeys(qty); 
     return this; 
    } 

}; 

和使用將是這樣的:

var Product = require('product.js'); 
Product.setProductQty(0, 20); 
// ---product index---^ 
// --------quantity-------^ 

這種方法描述了單個動作哪個用戶通常一次執行:他在某個位置看到一個產品並設置一個數量。在設計頁面對象時,您可以將其作爲規則 - 嘗試定義針對特定情況的單個用戶操作,併爲其制定方法。