如何用量角器检查中继器中的复选框
How to check checkbox in repeater with protractor
我无法在带有量角器的 AngularJs 中继器中选中复选框。
模型看起来像这样:
environments: [
{
name: 'Proof of Concept',
checked: false
},
{
name: 'Non-Production',
checked: false
},
{
name: 'Production',
checked: false
}
]
这样的观点:
<div class="checkbox" ng-repeat="environment in vm.assessment.environments">
<label><input type="checkbox" ng-model="vm.assessment.environments[$index].checked" ng-click="vm.checkboxChanged()" ng-required="!vm.someChecked">{{environment.name}}</label>
</div>
像这样在量角器中获取中继器:
this.environments = element.all(by.repeater('environment in vm.assessment.environments'));
并尝试像这样检查复选框但是当我 运行 测试时它似乎没有检查它:
this.environments.get(0).click();
And trying to check the checkbox like this but when i run the test it does not seem to check it:
那是因为您正在单击转发器项目 - div
元素,但我怀疑您需要单击 input
子元素。
您可以在单个表达式中链接 .all()
和 .element()
调用:
this.environments.first().element(by.css("input[ng-model$=checked]")).click();
尝试使用以下代码点击复选框。
var repeaterElement = element.all(by.repeater('environment in vm.assessment.environments'))
repeaterElement.then(function (ElementArray) {
for(i = 0; i < ElementArray.length; i++) {
ElementArray[i].all(by.tagName('input')).get(0).click();
browser.sleep(1000);
}
})
我无法在带有量角器的 AngularJs 中继器中选中复选框。
模型看起来像这样:
environments: [
{
name: 'Proof of Concept',
checked: false
},
{
name: 'Non-Production',
checked: false
},
{
name: 'Production',
checked: false
}
]
这样的观点:
<div class="checkbox" ng-repeat="environment in vm.assessment.environments">
<label><input type="checkbox" ng-model="vm.assessment.environments[$index].checked" ng-click="vm.checkboxChanged()" ng-required="!vm.someChecked">{{environment.name}}</label>
</div>
像这样在量角器中获取中继器:
this.environments = element.all(by.repeater('environment in vm.assessment.environments'));
并尝试像这样检查复选框但是当我 运行 测试时它似乎没有检查它:
this.environments.get(0).click();
And trying to check the checkbox like this but when i run the test it does not seem to check it:
那是因为您正在单击转发器项目 - div
元素,但我怀疑您需要单击 input
子元素。
您可以在单个表达式中链接 .all()
和 .element()
调用:
this.environments.first().element(by.css("input[ng-model$=checked]")).click();
尝试使用以下代码点击复选框。
var repeaterElement = element.all(by.repeater('environment in vm.assessment.environments'))
repeaterElement.then(function (ElementArray) {
for(i = 0; i < ElementArray.length; i++) {
ElementArray[i].all(by.tagName('input')).get(0).click();
browser.sleep(1000);
}
})