nightmare.js如何实现类似window.callPhantom()函数的功能?

nightmare.js How to achieve functionality like window.callPhantom() function?

我有以下代码:

var nightmare = Nightmare(option)
nightmare
  .goto('some url')
  .evaluate(() => {
    window.callback = function(cid) {
      // do some stuff
      // should screenshot at this point.
    }
  })
  .screenshot('./png.png') //Doesn't get accurate png here
  .end()

我想要的是在浏览器范围内添加一个回调,在浏览器范围内,如果回调函数在某个时候存在,我会调用它。在该回调函数中,我会调用主进程在该回调函数结束时截取屏幕截图。

它类似于 phantom.js 中的 window.callPhantom。但是我在 nightmare.js.

中找不到如何执行此操作

有什么想法吗?

您可以使用wait(fn),fn 是一个将在页面上执行的函数,return true 停止等待。

var nightmare = Nightmare(option)
nightmare
  .goto('some url')
  .wait(function() { if(something_to_watch) return true; })
  .screenshot('./png.png')
  .end()