量角器返回来自转发器的值数组

use*_*314 6 jasmine angularjs protractor

我正在寻找一种从量角器返回一系列值的简单方法 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)
Run Code Online (Sandbox Code Playgroud)

是否有更简洁,可重复使用的方法来构建量角器/茉莉花,我找不到?

sma*_*sma 11

AS alecxe说,使用map来做到这一点.这将返回一个将使用数组中的值解析的延迟,所以如果你有这个:

var mappedVals = element.all(by.repeater('user in users').column('user.username')).map(function (elm) {
    return elm.getText();
});
Run Code Online (Sandbox Code Playgroud)

它将像这样解决:

mappedVals.then(function (textArr) {
    // textArr will be an actual JS array of the text from each node in your repeater
});
Run Code Online (Sandbox Code Playgroud)

  • +1用于详细阐述`map()`! (3认同)