Javascript 量角器、承诺、参数和闭包
我现在正把剩下的一点点头发拔掉。 我想我的左膝失明了 我有两个功能可以工作。 每一个都正确地获取一个参数。 我会非常非常非常喜欢一个函数同时接受两个参数 我有一个超级简单的数据结构:Javascript 量角器、承诺、参数和闭包,javascript,parameters,closures,protractor,Javascript,Parameters,Closures,Protractor,我现在正把剩下的一点点头发拔掉。 我想我的左膝失明了 我有两个功能可以工作。 每一个都正确地获取一个参数。 我会非常非常非常喜欢一个函数同时接受两个参数 我有一个超级简单的数据结构: var stuff = [ { name: "Stone", id: "cc45" }, { name: "Hanley", id: "cc78" } ]; 我希望循环遍历该结构,并对每个结构运行一个超级简单的测试。请注意: for (var ii = 0;
var stuff = [
{ name: "Stone", id: "cc45" },
{ name: "Hanley", id: "cc78" }
];
我希望循环遍历该结构,并对每个结构运行一个超级简单的测试。请注意:
for (var ii = 0; ii < stuff.length; ii++) {
var aTile = element(by.id(stuff[ii].id));
aTile.getText().then(
/* magical solution */
);
}
在版本B(也缺乏魔力)中,我可以成功地看到我希望将量角器抓取的文本与之进行比较的数据:
aTile.getText().then((function (test) {
console.log(" ==Stuff test==" + test);
})(stuff[ii].name));
不管我拔了多少头发,我都不能做的是用量角器来比较两者。实际上,我需要补充一点:
expect(protractorGrabbedText).toContain(expectedTextFromStuff);
我恳求你,请你帮帮我。这很简单
expect()
方法能够保证隐式解析,并使用结果与实际数据进行比较
for (var ii = 0; ii < stuff.length; ii++) {
var aTile = element(by.id(stuff[ii].id)).getText();
expect(aTile.getText()).toContain(stuff[ii].name) //This will take care of resolving the promises.
}
我支持上述答案。这应该行得通
for (var ii = 0; ii < stuff.length; ii++) {
var aTile = element(by.id(stuff[ii].id));
expect(aTile.getText()).toContain(stuff[ii].name)
}
for(var ii=0;ii
所以您尝试了expect(aTile.getText()).toContain(stuff[ii].name)
?不,我不知道它会这样工作!愚蠢的我:)但我想要一些日志记录,这让我受挫-它仍然是一种享受!太棒了,方法2很完美,我可以在里面做额外的记录。现在,我可以很清楚地看到我以前尝试的错误——干杯!方法1确实需要aTile.getText(),我在var aTile=element(by.id(stuff[ii].id)).getText()中提到了.getText()
我的天啊!对非常抱歉!
for (var ii = 0; ii < stuff.length; ii++) {
function closure(index){
element(by.id(stuff[index].id)).getText().then(function(text){
expect(text). toContain(stuff[index].name)
})
}
closure(ii)
}
for (var ii = 0; ii < stuff.length; ii++) {
var aTile = element(by.id(stuff[ii].id));
expect(aTile.getText()).toContain(stuff[ii].name)
}