Javascript nightwatch自定义命令的执行模型是什么,我如何等待它们?
似乎我为Nightwatch.js实现的自定义命令正在异步执行。调用命令后发出的Javascript nightwatch自定义命令的执行模型是什么,我如何等待它们?,javascript,testing,nightwatch.js,Javascript,Testing,Nightwatch.js,似乎我为Nightwatch.js实现的自定义命令正在异步执行。调用命令后发出的console.log消息后,将显示自定义命令中的console.log消息。我在nightwatch文档中找不到关于如何执行这些命令的任何参考,但由于它们似乎是异步的,我不确定如何等待一个命令完成后再执行下一个命令(因为情况似乎并非如此) 这是我的自定义命令(“foo”): 以及我的测试功能: module.exports['my test'] = function(browser) { browser.r
console.log
消息后,将显示自定义命令中的console.log
消息。我在nightwatch文档中找不到关于如何执行这些命令的任何参考,但由于它们似乎是异步的,我不确定如何等待一个命令完成后再执行下一个命令(因为情况似乎并非如此)
这是我的自定义命令(“foo”):
以及我的测试功能:
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() {});
}
如果您想了解更深入的详细信息,可以关注以下问题:
您的命令应将
回调
作为参数
exports.command=函数(回调){
log('Command executed');
如果(回调){
回调();
}
}
然后像这样执行
browser.foo(函数(){
log(“测试函数返回”);
});代码>
其他解决方案可以使用浏览器。执行方法
module.exports['my test']=函数(浏览器){
浏览器。调整窗口大小(400600);
foo();
browser.perform(函数()
log(“测试函数返回”);
});
};
exports.command = function () {
console.log('Command executed');
this.execute(function() {});
}