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

时间:2015-11-03 08:46:48

标签: javascript node.js nightmare

我有以下代码:

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()

我想要的是在浏览器范围中添加回调,并且在浏览器范围内,如果它在某个时刻存在,我会调用回调函数。在该回调函数中,我将调用main进程在该回调函数的末尾截取屏幕截图。

它类似于phantom.js中的window.callPhantom。但我无法在nightmare.js中找到如何做到这一点。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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