看来我为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
如果我的自定义函数同步执行,那么与我期望的顺序相反。
答案 0 :(得分:2)
如果您希望自定义命令正常工作(并且是同步的),则需要在自定义命令中至少调用一个Nightwatch.js命令。
试试这个:
exports.command = function () {
console.log('Command executed');
this.execute(function() {});
}
如果您想了解更详细的信息,可以按照以下问题进行操作: https://github.com/nightwatchjs/nightwatch/issues/1123