在我的测试中,我需要先找到一个特定的产品,然后对该产品的某些子元素进行一些操作。有很多产品。
这是我的第一个量角器脚本,所以请耐心等待。
var prod = element.all(by.css('singleproduct')).get(1);
singleproduct
是一个指令。
这是破坏的脚本的一部分:
prod.element(by.css(".product-ordering ul li")).each(function(elem) {
})
但是,我总是得到element(...).each is not a function
HTML:
<singleproduct ng-repeat="item in vm.products" item="::item" class="col-xs-12 col-sm-6 col-md-4 product_tile ng-scope ng-isolate-scope">
<article ng-class="{'product--active': isSelected}" class="product">
<section ng-click="toggleDetails()" class="product-content">
<!-- some prod info -->
</section>
<section>
<div class="product-ordering">
<ul class="product-quantities">
<!-- ngRepeat: option in ::priceList -->
<li ng-repeat="option in ::priceList" class="ng-scope">
<!-- this is the LI I want to catch...
</li>
<!-- end ngRepeat: option in ::priceList -->
<li ng-repeat="option in ::priceList" class="ng-scope">
<!-- this is the LI I want to catch...
</li>
<!-- end ngRepeat: option in ::priceList -->
<li ng-repeat="option in ::priceList" class="ng-scope">
<!-- this is the LI I want to catch...
</li>
<!-- end ngRepeat: option in ::priceList -->
</ul>
</div>
</section>
</article>
</singleproduct>
答案 0 :(得分:3)
each()
函数仅适用于数组。但是prod.element(by.css(".product-ordering ul li"))
会返回ElementFinder
而不是ElementArrayFinder
。您需要使用product.all()
代替product.element()
。请看下面的例子。
prod.all(by.css(".product-ordering ul li")).each(function(elem) {
})