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

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

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

它类似于 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/

相关文章:

javascript - Jade模板,扩展模板后添加到头部

angularjs - 使用 Loopback-component-passport 将环回中的用户角色设置为内置模型

node.js - meteor 客户端测试在AWS上挂起,但不在本地挂起

javascript - Nightmare 没有从评估中返回正确的值

javascript - $.getScript() 和 $.get() 的区别

javascript - 更新加载 JSON 重复上次发布

node.js - 将 NodeJS 添加到 Heroku 中的 Clojure 应用程序

node.js - Nodejs - Passport ,完成不是一个函数

javascript - Nightmare.js找不到CSS标签

javascript - React中构造函数和属性的正确使用