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.callPhantomそれはphantom.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 に答える