已通过post
<div ng-repeat="todo in todos">
<!--i can access span-->
<span>{{todo.text}}</span>
<span>{{todo.address}}</span>
<span>{{todo.done}}</span>
<!--i CAN'T access input -->
<input type="text" ng-model="todo.text"/>
<input type="text" ng-model="todo.address"/>
<input type="text" ng-model="todo.done"/>
</div>
量角器Javasript我可以在项目级别访问Span但无法访问输入
var result=
browser.findElements(protractor.By.repeater('todo in todos').column('todo.text'));
/*For Span at item level It works*/
/*
result.then(function(arr) {
arr[0].getText().then(function(text) {
console.log(": "+ text);
});
});*/
对于项目级别的输入它已经工作
/*
result.then(function(arr) {
arr[0].getText().then(function(text) {
console.log(": "+ text); //TypeError: Cannot call method 'getText' of undefined
});
});*/
如何根据
访问模型result.then(function(arr) {
arr[0].then(function(text) {
console.log(": "+ text.getAttribute('value'));
});
});
无法找到我正在做的错误..是否还有其他方法可以访问Angular输入。
答案 0 :(得分:2)
经过很长一段时间的努力,我能够做到这一点:
element(by.repeater('todos')).evaluate('todos.length').then(function(itemLength)
{
for(var i = 0 ; i < itemLength ; i++)
{
var result= element(by.repeater('todo in todos').row(i));
result.then(function(arr)
{
/*FETCH TEXT*/
var m = arr.all(by.model("todo.text")).getAttribute('value');
m.then(function(l){
console.log(l);
});
/*CLEAR TEXT*/
arr.all(by.model("todo.text")).clear();
/*SET TEXT*/
arr.all(by.model("todo.text")).sendKeys('Hello');
});
};
});
怀疑:
Angular promise..then
。我已将三个Angular promise..then
嵌套在另一个内,但不知道为什么在量角器中使用then
。