【问题标题】:Access inner element from within an element in protractor从量角器中的元素内访问内部元素
【发布时间】:2015-11-02 08:22:00
【问题描述】:

我遇到了页面对象的概念,并将其用于在 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);
  }
}

现在要使用页面对象实现场景(如代码 sn-p 1 中),我将代码修改为,

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

我被困在这里如何访问productElem 中的qtyElem

【问题讨论】:

    标签: angularjs testing protractor pageobjects


    【解决方案1】:

    您可以创建一个方法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-------^
    

    此方法描述了用户通常一次执行的单个操作:他在位置看到产品并设置数量。您可以在设计页面对象时将其作为一个规则 - 尝试为特定情况定义单个用户操作并为其制定方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多