2016-05-12 5 views
0

casper.jsのコードは次のようになります。Visual Studioからのプロセスの実行

var casper = require('casper').create(); 
var fs = require('fs'); 
var path = 'test.txt'; 

fs.touch(path); 

casper.start('http://www.google.com', function() { 
    fs.write(path, this.getHTML(), 'w'); 
}); 

casper.run(); 

私はこのようなプロセスを呼び出しています。私は、コマンドラインから

>casperjs casper.js 

を実行したときではなく、私は、Visual Studioからそれを実行しようとすると

System.Diagnostics.Process.Start(@"C:\CasperJS\casperjs-casperjs-b4f7669\bin\casperjs", @"C:\casper\casper.js"); 

は、それは動作します。なぜどんなアイデア?

+1

問題が生じる場合は表示されます。また、コードがHTMLをダウンロードしてファイルに保存すると仮定すると、WebClientを使用してC#で行うことができるときに外部プログラムで複雑になるのはなぜですか? – Gusman

+0

WebClientは、ヘッドレスブラウザができるようにjavascriptを実行できません。それはエラーを出さず、プログラムは実行され、テキストを表示せずに閉じます – Mike

+0

私はcasperに精通していませんが、 'this.getHTML()'はHTMLコンテンツのみを送りますか?とにかく、プログラムが正しいディレクトリでなくなったように聞こえるのは、2つの文字列を受け入れるStart overloadは、ProcessStartInfoを受け入れ、正しいコマンドラインのWorkingDirectoryを設定するものを使用します。作業ディレクトリは.jsが格納されているディレクトリになります。次に、パラメータに完全パスを渡す必要はありません。単に "casper.js" – Gusman

答えて

0

これは、jsファイルを私のapplication.exeファイルと同じディレクトリに移動することで簡単に修正されました。それから、CasperJSを私のパスに追加して、完全パスを指定する必要なしに呼び出すことができました。私のC#コードはこのように見えました。 casperjs

Process.Start("casperjs", "casp.js"); 

はcasperjsプログラムであるとcasp.jsは私が実行しようとしているのJavaScriptファイルです。

関連する問題