Debugging 如何在nightwatch中调试

Debugging 如何在nightwatch中调试,debugging,nightwatch.js,Debugging,Nightwatch.js,我正试图在夜视中调试。 当我输入console.log时,它会在测试运行之前打印出来,同时它会对测试进行某种构造/编译。 我还尝试了VisualStudio代码调试器和同样的东西——在测试实际运行之前,断点命中。 感谢您的帮助-标记因为您没有真正的示例或运行的某些代码,我只能为您提供解决此问题可以尝试的大致方向 这是因为代码是异步运行的(因为javascript就是这样工作的),所有与浏览器/html无关的内容都将在浏览器开始实际测试之前运行。我建议您尝试使用回调,以避免首先打印您的支票MSG(

我正试图在夜视中调试。 当我输入console.log时,它会在测试运行之前打印出来,同时它会对测试进行某种构造/编译。 我还尝试了VisualStudio代码调试器和同样的东西——在测试实际运行之前,断点命中。
感谢您的帮助-标记

因为您没有真正的示例或运行的某些代码,我只能为您提供解决此问题可以尝试的大致方向

这是因为代码是异步运行的(因为javascript就是这样工作的),所有与浏览器/html无关的内容都将在浏览器开始实际测试之前运行。我建议您尝试使用回调,以避免首先打印您的支票MSG(通过这种方式,您可以将
控制台.log
链接到依赖于浏览器的代码,并且它将仅在完成此操作后运行。如果您这样做,则使用控制台日志进行的调试将真正起作用

例如,也许您可以学习如何执行此操作。

“夜视”构建在node.js上。node.js异步执行语句。如果您编写
console.log();
,它将异步执行

使用
browser
(或
client
)对象(例如
browser.url();
browser.click();
等)编写的语句将在Selenium服务器上排队。它们也由node.js异步执行,但在Selenium服务器上排队

要与nightwatch中的其他语句同步执行
console.log()
,请使用。您将获得与其他语句同步的输出

例子
var元素值;
浏览器
.getValue('.some元素',函数(结果){
elementValue=result.value;
})
//其他事情正在发生。。。
//
//自动完成回调
.perform(函数){
log('elementValue',elementValue);
//在没有任何定义参数的情况下,执行
//立即(同步)完成
})
.end();

出于调试目的,您可以停止执行以查找元素值或检查与浏览器相关的数据。使用以下命令:(或
client.pause();
)。不要在此处传递任何计时器。它将停止执行。

您遇到了什么错误?提出的问题缺乏具体性。您正在修改什么文件以添加console语句?在浏览器中运行console.log时,是否有任何方法登录到nightwatch输出控制台?这在难以调试问题的CI中非常有用?