1

我有以下代码:

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

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

它类似于window.callPhantomphantom.js 中的内容。但我在 nightmare.js 中找不到如何做到这一点。

有任何想法吗?

4

1 回答 1

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()
于 2015-11-03T08:57:32.833 回答