2016-10-10 8 views
0

すべてのダイナミックコンテンツを読み込むためにウェブページの最後までスクロールすることができました。しかし、これを行った後、私はいくつかのデータを取得するためにページを評価したいと思います。私はシンプルキャスパーはスクロールダウンしてもエクササイズしないと評価します

casper.echo("something"); 

私のコードブレークとは異なる何かを実行すると、私は譲渡データを取得しない場合は私の問題はあります。これは私のコードです:

いくつかの私のコメントしたコードから、私は何の成功もなしに多くの異なるオプションを試しています。私は_onTimeoutコールバックの中に、評価またはfindAllを配置しようとしました。私はコードを壊して、 "DONE"は決して印刷されません。あるいは評価の中でコードを実行することは決してありません。

スクロールがうまくいき、スクロールせずにページを評価して必要なコンテンツを取得できます。

どうすればこの作業を行うことができますか?スクロールした後にそのページを評価しますか?

はあなたに

EDITありがとう:)私もscrollNow(後に実行を継続する)(scrollNowにコールバック関数を渡してテストしている と呼ばれています。コールバックが呼び出されますが、findAllやその他の関数を評価して必要なデータを取得することはできません。

答えて

1

casper目的はcasper.evaluate__utils__のみ利用可能な外部のcasper.evaluateのみ利用可能な内部です。 casper.echo(...)を呼び出すと、TypeErrorが発生し、実行が停止します。

あなたは(casper.evaluateの内側)ページコンテキストから何かを印刷したい場合は、"remote.message"イベントに登録する必要があります。他に

casper.on("remote.message", function(msg){ 
    this.echo(msg); 
}); 

... 
casper.evaluate(function(){ 
    console.log("something from the page"); 
}); 

すべてが正常に見えます。

+0

美しい!情報ありがとうございました – Alejandro

関連する問題