我有一种创建键的方法:元素的值对
this.cardcontent = function () {
var cardcontents = {}; empty dictionary declaration
var cardtext = element.all(by.css('.tileHeader')).map(function(cards) {
return cards.getText();
}); // card name as list in text format
var contenttext = element.all(by.css('.tileContentText')).map(function(content) {
return content.getText();
});//card content as list in text format
for(var i=0; i<cardtext.length;i++){
cardcontents[cardtext[i]] = contenttext[i]; // creating the dictionary
}
return cardcontents;
};
上面的方法在这里被调用:
it("Validate that card name to reflect multiple categories", function (){
var cardandcontents = homePage.cardcontent();
console.log(cardandcontents);
for (var j in cardandcontents) {
if (cardandcontents.hasOwnProperty(j)) {
console.log("key : " + j + " value : " + cardandcontents[j]);
}
}
});
我得到的输出是空字典{}
。控制台中所需的输出:
key : card1 value: content1 key : card2 value: content2 key : card3 value: content3 key : card4 value: content4 key : card5 value: content5 key : card6 value: content6
有人可以给我解决这个问题的方法吗?我没有得到预期的输出。
答案 0 :(得分:1)
map()
返回一个Promise。 http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.map
在for
循环中,您尝试将cardtext
视为数组。您需要兑现承诺。