gpt4 book ai didi

javascript - javascript 变量上的 Nightmare.js wait()

转载 作者:行者123 更新时间:2023-12-03 13:24:09 25 4
gpt4 key购买 nike

如何使用 nightmare.js wait() 检查是否加载了 javascript 对象/变量?

我正在测试一个严重依赖 javascript 来呈现内容的网页。我正在使用 Nightmare.js,在注入(inject)数据并运行测试之前,我需要等待加载 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方法,它应该返回 true告诉 Nightmare.js 它可以恢复测试。

因此,如果您希望测试等到 App.app是可用的,你可以让你的函数返回一个 bool 表达式来测试它是否存在,即不是 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来自您的原始代码片段 - 这是多余的。

关于javascript - javascript 变量上的 Nightmare.js wait(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com