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

标签 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

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

最佳答案

如果您希望自定义命令正常工作(并且同步),您需要在自定义命令中至少调用一个 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/

相关文章:

javascript - 如何在 NightwatchJS 中对元素列表进行断言

javascript - 如何使用 onchange 事件将附加表行的值存储在数组变量中?

javascript - 在react dnd中拖动时使用鼠标滚轮滚动

node.js - 夜巡卡在启动 Selenium 服务器上

python - 如何测试是否已导入一个 python 模块?

testing - Test Automation Framework Gauge 今年会结束 Beta 测试吗?

java - 守夜人 Selenium "socket hang up"

javascript - 如何用 JavaScript 创建扫雷板?

javascript - 将解码后的路径转换为javascript中的坐标?

ruby-on-rails - 使用 RSpec 测试模块内部的类