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