Angularjs 从量角器中的元素内访问内部元素

Angularjs 从量角器中的元素内访问内部元素,angularjs,testing,protractor,pageobjects,Angularjs,Testing,Protractor,Pageobjects,我遇到了页面对象的概念,并将其用于在量角器中编写测试,但我面临一个问题。旧代码如下 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.repeate

我遇到了页面对象的概念,并将其用于在量角器中编写测试,但我面临一个问题。旧代码如下

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);
  }
}
现在,为了用页面对象实现场景(如代码片段1),我将代码修改为

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

关于如何访问
productElem
中的
qtylem
,我被困在这里

您可以创建一个方法
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-------^
此方法描述了用户通常一次执行的单个操作:他在位置上看到产品并设置数量。您可以在设计页面对象时将其作为一条规则—尝试为特定情况定义什么是单用户操作,并为其创建一个方法