我有以下代码:
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中找到如何做到这一点。
有什么想法吗?
答案 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()