我遇到了页面对象的概念,并在Protractor中编写测试时使用了它,但是我遇到了一个问题。旧代码如下。
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);
}
}
现在要使用Page Objects实现场景(如代码片段1所示),我将代码修改为:
var Product = require('product.js');
Product.setProduct(0);
我在这里停留在如何访问qtyElem
内部productElem
。
您可以创建一个方法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-------^
此方法描述了用户通常一次执行的单个动作:他看到某个位置的产品并设置数量。在设计页面对象时,可以将其作为规则-尝试定义什么是针对特定情况的单个用户操作,并为其创建方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句