我正在寻找一种简单的方法来从量角器的all.(by.repeater)
基本上,我只想要一个简单的方法来制作一个usernames
数组,给出一个像user in users
这样的转发器。
现在我正在构建它:
allUsers = element.all(by.repeater('user in users').column('user.username')).then(function(array){
var results = []
var elemLength = array.length
for(var n = 0; n < elemLength; n++){
array[n].getText().then(function(username){
results.push(username)
})
}
return results
});
expect(allUsers).toContain(newUser)
有没有更简洁,可重复使用的方法来构建我无法找到的量角器/茉莉花?
答案 0 :(得分:11)
AS alecxe说,使用map来做到这一点。这将返回一个将使用数组中的值解析的延迟,所以如果你有这个:
var mappedVals = element.all(by.repeater('user in users').column('user.username')).map(function (elm) {
return elm.getText();
});
它会像这样解决:
mappedVals.then(function (textArr) {
// textArr will be an actual JS array of the text from each node in your repeater
});
答案 1 :(得分:3)
我之前已成功使用map()
:
element.all(by.repeater('user in users').column('user.username')).map(function (elm) {
return elm.getText();
});
当我研究这个主题时,我采用了以下解决方案: