評価コンテキストから関数が呼び出されたときにcaptureのようなcasperjsメソッドを呼び出す方法はありますか?
説明:「実際の」ブラウザーまたはキャスパーの両方で実行できるjsスクリプト(qunit)を記述できるようにしたい。
サンプル :
function screenshot()(
//i'm runing in a "real" browser ? Then only console.log
//i'm running in casper ? Then call capser.capture()
私はこれをクロージャーで試しましたが失敗します:
var casper = require('casper').create();
casper.start('http://google.fr/');
casper.evaluate(function(o) {
o.capture('/tmp/google.png', {
top: 100,
left: 100,
width: 500,
height: 400
});
}, {o: this});
casper.run()
TypeError: JSON.stringify cannot serialize cyclic structures.
:/modules/webpage.js:249
/Users/macbookpro/js:576 in evaluate
/Users/macbookpro/js/testClosure.js:11
console.logをメッセージバスとして使用する方法があることは知っていますが、より良い解決策を探しています。
ありがとう