【问题标题】:nightwatch - debugging with node.js and Chromenightwatch - 使用 node.js 和 Chrome 进行调试
【发布时间】:2017-08-02 09:26:19
【问题描述】:

有没有办法在命令链中调试 nightwatch,或者在 chrome DevTools 中调试注入的代码?

例如,我想调试“窗口”对象:

我使用 chrome 版本 59.0.3071.115。 根据ChromeDriver - WebDriver for Chrome,只要 DevTools 打开,DevTools 就会始终与 ChromeDriver 断开连接。意思是,如果我在执行命令(图像)中注入代码,DevTools 将关闭并且我必须再次重新打开它?意思是,我什至不能在前端调试它?

谢谢!

【问题讨论】:

    标签: node.js selenium debugging visual-studio-code nightwatch.js


    【解决方案1】:

    显然,在命令队列中调试或设置断点的唯一方法是通过回调,如下例所示。

    设置断点以检查浏览器中的页面

    有时在浏览器中间检查页面很重要 的测试用例运行。例如,验证使用的选择器。暂停 在正确的时刻执行在回调中设置断点:

       browser.perform(function () {
       console.log('dummy statement'); // install a breakpoint here   });
    

    取自https://github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue的示例。

    除了:

    除了execute命令,因为nightwatch是直接将指定的脚本注入到浏览器中,会在浏览器中直接执行。此外,chrome每页只允许一个DevTools,因此每次必须执行命令时它都会尝试重新打开DevTools。

    DevTools 窗口不断关闭

    这是正常的。

    当你打开 DevTools 窗口时,ChromeDriver 会自动 断开连接。当 ChromeDriver 收到命令时,如果断开连接, 它将尝试关闭 DevTools 窗口并重新连接。

    Chrome 的 DevTools 每页只允许一个调试器。从 2.x 开始, ChromeDriver 现在是一个 DevTools 调试客户端。以前的版本 ChromeDriver 使用了不同的自动化 API,它不再是 Chrome 29 支持。

    如果您需要在 DevTools 中检查某些内容,您现在可以做的最好的事情 暂停您的测试,以便 ChromeDriver 不会关闭 DevTools。当你 在 Chrome 中完成检查后,您可以取消暂停测试并 ChromeDriver 将关闭窗口并继续。

    来源:https://sites.google.com/a/chromium.org/chromedriver/help/devtools-window-keeps-closing

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-14
      • 2018-06-12
      • 2011-12-10
      • 2017-04-25
      • 2017-09-21
      相关资源
      最近更新 更多