看来我为 Nightwatch.js 实现的自定义命令是异步执行的。自定义命令内的 console.log
消息在调用命令后发出的 console.log
消息之后显示。我在 nightwatch 文档中找不到有关如何执行这些命令的任何引用,但由于它们似乎是异步的,我不确定如何等待以确保一个命令在执行下一个命令之前完成(因为事实似乎并非如此)。
这是我的自定义命令(“foo”):
exports.command = function () {
console.log('Command executed');
}
我的测试函数:
module.exports['my test'] = function(browser) {
browser.resizeWindow(400, 600);
browser.foo();
console.log('Test function returning');
};
当我运行此命令时,日志显示为:
Test function returning
Command executed
如果我的自定义函数同步执行,这与我期望的顺序相反。
最佳答案
如果您希望自定义命令正常工作(并且同步),您需要在自定义命令中至少调用一个 Nightwatch.js 命令。
试试这个:
exports.command = function () {
console.log('Command executed');
this.execute(function() {});
}
如果您想了解更深入的详细信息,可以关注此问题: https://github.com/nightwatchjs/nightwatch/issues/1123
关于javascript - nightwatch自定义命令的执行模型是什么,如何等待它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38725196/