Nightmare.js 在 javascript 个变量上等待()
Nightmare.js wait() on javascript variables
如何使用 nightmare.js wait() 检查 javascript object/variable 是否已加载?
我正在测试一个严重依赖 javascript 呈现内容的网页。我正在使用 Nightmare.js,在我注入数据和 运行 我的测试之前,我需要等待加载 javascript。
但是,我还没有找到使用 nightmare.js wait() 来处理 javascript 的方法。
我试过这样的方法:
nightmare
.goto('file:\\' + __dirname + '\index.html');
.wait("#ext-quicktips-tip") //make sure index.html is loaded
.wait(function() {
return App.app //should return true when App.app is available
}
.end()
.then();
我试过使用调试控制台,页面加载正常。 App.app 在控制台中可用,但 nightmare.js 永远不会看到 App.app
如 API documentation for Nightmare.js 中所述,如果您将函数传递给 wait
方法,它应该 return true
告诉 Nightmare.js 它可以恢复测试了。
因此,如果您希望测试等到 App.app
可用,您可以让函数 return 是一个布尔表达式,用于测试它是否存在,即是否 undefined
,像这样:
nightmare
.goto('file:\\' + __dirname + '\index.html');
.wait("#ext-quicktips-tip") //make sure index.html is loaded
.wait(function() {
// return true when App.app is available
return typeof App.app !== undefined;
}
.end();
请注意,我从您的原始代码片段中遗漏了最后一个 then
– 这是多余的。
如何使用 nightmare.js wait() 检查 javascript object/variable 是否已加载?
我正在测试一个严重依赖 javascript 呈现内容的网页。我正在使用 Nightmare.js,在我注入数据和 运行 我的测试之前,我需要等待加载 javascript。 但是,我还没有找到使用 nightmare.js wait() 来处理 javascript 的方法。
我试过这样的方法:
nightmare
.goto('file:\\' + __dirname + '\index.html');
.wait("#ext-quicktips-tip") //make sure index.html is loaded
.wait(function() {
return App.app //should return true when App.app is available
}
.end()
.then();
我试过使用调试控制台,页面加载正常。 App.app 在控制台中可用,但 nightmare.js 永远不会看到 App.app
如 API documentation for Nightmare.js 中所述,如果您将函数传递给 wait
方法,它应该 return true
告诉 Nightmare.js 它可以恢复测试了。
因此,如果您希望测试等到 App.app
可用,您可以让函数 return 是一个布尔表达式,用于测试它是否存在,即是否 undefined
,像这样:
nightmare
.goto('file:\\' + __dirname + '\index.html');
.wait("#ext-quicktips-tip") //make sure index.html is loaded
.wait(function() {
// return true when App.app is available
return typeof App.app !== undefined;
}
.end();
请注意,我从您的原始代码片段中遗漏了最后一个 then
– 这是多余的。