私はいくつかのページをナビゲートするループを作成しようとしており、各ページごとに若干異なるテストを作成しています。それが非同期であるという事実は私を捨ててしまい、私はそれをやる方法を見つけ出すことができませんでした。通常のループだけを使用しようとすると、ページは常に配列の最後のページに設定されます。私はいくつかの異なる方法で閉鎖を使用しようとしましたが、運がなかった。私はこれが正しいルートだと思う。私はthis質問を見て、それは私にいくつかの良いアイデアを与えたが、私はまだ仕事に物事を得ることができていない。分度器でテストを作成するページをループする
var bs = new BasicSteps();
describe("Some description", function() {
var pages = ['/page1', '/page2', '/page3'];
var i = 0;
beforeEach(function() {
bs.navigate(pages[i]);
browser.sleep(2000);
i++;
});
for(page in pages) {
// Code for the spec
it('Some spec', function() {
// Some code for the tests
if(page == 1) {
console.log("page1");
}
else if(page == 2) {
console.log("Page2");
}
else if(page == 3) {
console.log("Page3");
}
});
}
});
これはループがかなりすぐに実行されるため、Page3
を3回印刷します。私はクロージャを使用しようとしましたが、これはいくつかのあいまいなエラーが発生し、何かが実行される前にクラッシュします。
var funcs = [];
function createfunc(page) {
return function() {
// Code for the spec
});
}
for(var page = 0; page < pages.length; page++) {
funcs[page] = createfunc(page);
}
for(var j = 0; j < funcs.length; j++) {
funcs[j]();
}