0
セクションヘッダーが正しい順序で複数のサイトをテストしようとしています。もちろん、Nightwatchでは要素からテキストを取得することを含め、すべてが非同期です。次のコードは、タイムアウトが呼び出されることはありません。Nightwatch.jsで複数の非同期操作を待っています
client.url(`www.oneofmyrealestatesites.com`);
client.waitForElementPresent("body", 5000);
var _ = require("underscore");
// This is the order I expect things to be in
var expected = ["Homes For Sale", "New Homes", "Apartments & Rentals"];
client.elements("css selector", ".listings .module-title .label", function (data) {
var listings = [];
data.value.forEach(function (element) {
client.elementIdText(element.ELEMENT, function (result) {
listings.push(result.value);
})
})
setTimeout(function() {
// Some of the sites have extra sections
var diff = _.intersection(listings, expected);
client.assert.ok(listings == diff);
}, 5000);
});
どのような遅延があっても、リストは常に空であるように見えます。私がconsole.logのリストをプッシュしている場合、はになっているので、問題はありません。 client.pause
も常に無視されます。
diffをアサートする前にリストにデータが入力されていることを確認する方法はありますか?
私はこのような場合のために https://github.com/caolan/async ドキュメントasync
ライブラリを使用してい