2

次のコードを使用すると、 Twitter.comが無効になっているため(空の関数)、文字列casper.jsが出力されません。This is thenEvaluateconsole.log

var casper = require('casper').create({
    verbose: false,
    logLevel: 'debug'
});

casper.start("http://twitter.com");

casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
})

casper.thenEvaluate(function() {
    console.log('This is thenEvaluate');
});

casper.run();

URLgoogle.comまたは他のWebサイトに交換すると、機能します。私の質問は:

  1. 無効になっているWebサイトの場合、再度有効console.logにする方法はありますか?

  2. evaluate()#1がNOの場合、またはthenEvaluate()関数内で何らかのログを実行する方法はありますか?

ありがとう。

4

3 に答える 3

1

オブジェクトのlogプロパティを削除するだけです:console

>>> console.log('plop')
undefined
>>> delete console.log
true
>>> console.log('plop')
plop
undefined

それはキャスパーで与えることができます:

var casper = require('casper').create();

casper.start("http://twitter.com");

casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
})

casper.thenEvaluate(function() {
    delete console.log;
    console.log('This is thenEvaluate');
});

casper.run();

免責事項: 回答が見つかりました ここ、元の著者はそれに応じてクレジットされるべきです.

于 2012-11-26T09:36:55.277 に答える
1

ここでconsole.log() の復元に関する回答を見つけました

var i = document.createElement('iframe');
i.style.display = 'none';
document.body.appendChild(i);
window.console = i.contentWindow.console;
于 2012-11-25T00:26:32.893 に答える
0

ビジュアルアサート

ある種の視覚的な console.log 効果を DOM に追加する assert ウィジェットを構築することを検討したい場合があります。そうすれば、テキストを出力できます。私はGithubにGistを持っており、このような状況のためにそのようなものを実装しました: https://gist.github.com/3773871

そのコードをプログラムに呼び出すだけの場合は、次を使用できます

assert(true, 'This is thenEvaluate()')

明らかに、適切なアサートとして実際に使用しているわけではありませんが、true と文字列を渡してコンソール ログの代わりに呼び出すと、画面の右上にある絶対配置要素に結果が出力されます。読むために。

于 2012-11-25T00:17:01.253 に答える