我有以下代码:

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将是在页面上执行并返回true的函数,以停止等待。

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

关于javascript - nightmare.js如何实现诸如window.callPhantom()函数之类的功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33494748/

10-09 19:49