Javascript 如何使用量角器+;有棱角的
在通过repeater查找元素时,是否有方法访问迭代器索引/键Javascript 如何使用量角器+;有棱角的,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,在通过repeater查找元素时,是否有方法访问迭代器索引/键 protractor.By.repeater("(id,cat) in pets") 在本例中,我希望能够访问猫的“id”。“id”不是表中显示为值的列之一,它用于导航,如ng click=“goto('/pets/'+cat.id)”。HTML中没有绑定,例如{{id}或{{cat.id},因此执行以下操作: ptor.findElements(protractor.By.repeater("(id,cat) in pets")
protractor.By.repeater("(id,cat) in pets")
在本例中,我希望能够访问猫的“id”。“id”不是表中显示为值的列之一,它用于导航,如ng click=“goto('/pets/'+cat.id)”
。HTML中没有绑定,例如{{id}
或{{cat.id}
,因此执行以下操作:
ptor.findElements(protractor.By.repeater("(id,cat) in pets").column('cat.id'))
返回一个空元素:[]
我也尝试过做一些类似的事情,但没有成功:
ptor.findElement(protractor.By.repeater("(id,cat) in pets").row(0).column('cat.id'))
访问特定索引的正确方法是什么
以下是Jmr答案的非缩短语法:
ptor.findElements(protractor.By.repeater('(id, cat) in pets')).then(function (arr) {
arr[0].evaluate('cat.id').then(function (id) {
console.log(id);
});
});
ptor.findElements(量角器By.repeater('pets')(id,cat)),然后(函数(arr){
arr[0]。计算('cat.id')。然后(函数(id){
console.log(id);
});
}); 您希望评估页面上没有的内容,因此“row”和“column”方法将不起作用。如果您只使用中继器,您将得到一个包含所有行的数组。然后可以使用
evaluate
命令在该元素的上下文中计算角度表达式。例如(使用缩短的语法)
太棒了,这正是我想要的。
element.all(by.repeater('(id, cat) in pets')).then(function(arr) {
arr[0].evaluate('cat.id'); // This is a promise which resolves to the id.
});