nightwatch自定义命令的执行模型是什么,我该如何等待它们?

时间:2016-08-02 15:52:45

标签: javascript testing nightwatch.js

看来我为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

如果我的自定义函数同步执行,那么与我期望的顺序相反。

1 个答案:

答案 0 :(得分:2)

如果您希望自定义命令正常工作(并且是同步的),则需要在自定义命令中至少调用一个Nightwatch.js命令。

试试这个:

exports.command = function () {
    console.log('Command executed');
    this.execute(function() {});
}

如果您想了解更详细的信息,可以按照以下问题进行操作: https://github.com/nightwatchjs/nightwatch/issues/1123