2015-04-23 3 views
1

Я недавно мигрировали из транспортира 1,8 до 2,0 (https://github.com/angular/protractor)транспортир 2,0 .map не возвращает элемент

У меня есть проблемы с пониманием, как сделал так, как .map работает измененная. Обычно я хотел бы найти элементы, а затем сопоставить их, как это:

locator.all(by.css('.whatever')) 
    .map(function(element){ 
     return { 
      ele: element, 
      name: element.getText() 
     }; 
    }) 
    .then(function(elements){ 
     if (elements[x].name ==='sth') { 
     //do something on elements[x].ele 
     } 
    }); 

Проблема не в том, что в новой версии транспортир .element уже не обещание. Так что теперь, когда я запускаю такой код, это не только не работает, но и транспортир замерзает, не возвращая никакой стека.

Как мне решить эту проблему (сопоставление списка элементов DOM) в новейшей версии транспортира?

Спасибо за помощь;)

ответ

0

Я получил вокруг этого вопроса с чем-то вроде следующего.

locator.all(by.css('.whatever')) 
.map(function(element){ 
    return { 
     click: function() { 
      element.click(); 
     }, 
     name: element.getText() 
    }; 
}) 
.then(function(elements){ 
    if (elements[x].name ==='sth') { 
     elements[x].click(); 
    } 
});