我想在Protractor Test中单击嵌套ng-repeat中的第二个复选框

时间:2017-09-06 07:05:53

标签: angularjs protractor

我的代码段在下面..

<div  class="sl" ng-repeat="qual in mQuals | orderBy : 'order'">
    <div  ng-repeat="cList in tList | orderBy:'Priority' " ng-if="c == qualifier.Id">
        <p class="sl-text-body--small" title="">
            <div>
                <label class="sl-checkbox" style="cursor: pointer">
                    <input ng-model="checkList.Status"  type="checkbox" id="checkbox-01" />
                        <span class="sl-checkbox--fux"></span>  
                </label>
            </div>
        </p>
    </div>
</div>

在内部ng-repeat中,它重复两次。我无法点击第二个复选框。

enter image description here

我试过下面的量角器..

var checkBoxElements=element.all(by.xpath('//input[@ng-model="checkList.Status"]')).get(1);
 browser.wait(EC.presenceOf(checkBoxElements),5000);
 checkBoxElements.click().then(function () {
                        /*/!* Getting color-class of qualifier-box*!/*/

                        browser.sleep(2000);

    })

当我尝试下面的时候..

var checkBoxElements=element.all(by.xpath('//input[@ng-model="checkList.Status"]')).get(0);

我可以点击第一个复选框。

1 个答案:

答案 0 :(得分:0)

我建议你为输入生成正确的ID。 在你的情况下,它将是这样的:

<input ng-model="checkList.Status"  type="checkbox" id="checkbox-{{ $parent.$index }}-{{ $index }}" />

其中$ parent。$ index是外部ng-repeat的索引/迭代器,$ index是内部的索引/迭代器。

在量角器测试中,您可以选择以下元素:

element.all(by.css('#checkbox-0-1')).get(0);