2016-08-31 7 views
0

日付範囲で記入されたログをダウンロードしようとしていますので、希望の日付でフォームに記入してから、「通話履歴のエクスポート」ボタンをクリックすると、定期的にCSVファイルのダウンロードが自動的に開始されますブラウザ。CasperJSでボタンをクリックして起動したファイルを保存するにはどうすればよいですか?

キャスパーを使用して同じボタンを「クリック」すると自動的にトリガーされるファイルを保存するにはどうすればよいですか?

casper.then(function(){ 
    console.log("Filling out form and getting CSV"); 
    this.evaluate(function(){ 
     document.getElementsByName("startdate")[0].value="08/30/2016"; 
     document.getElementsByName("enddate")[0].value="08/30/2016"; 
     document.getElementsByName("s1")[0].click(); 
    }); 
}); 

次のようにボタンのHTMLは次のとおりです。

<td><input type="submit" name="s1" value="Export Call Logs"></td> 

また、サイドノートとして、明らかに私はちょっとやり方でプログラムのポイントを破る、手動で入力した日付にしたくありません私はPyhonに最も精通していますが、DateTimeモジュールと同等のものか、それとも前日の日付を取得し、それに応じて入力するVarとしてCasperを使用することができますか?すなわち今日の日付は08/31/2016です。前日の08/30/2016を入力したいと考えています。

編集: exampleの実装を試しました。

casper.then(function(){ 
    console.log("Filling out form and getting CSV"); 
    this.page.onFileDownload = function(status){console.log("onFileDownload(' + status + ')"); 
    return "downloadedfile.csv"; }; 
    this.evaluate(function(){ 
     document.getElementsByName("startdate")[0].value="08/30/2016"; 
     document.getElementsByName("enddate")[0].value="08/30/2016"; 
     document.getElementsByName("s1")[0].click(); 
    }); 
}); 
+0

'page.onFileDownload'コールバックは、PhantomJSの非公式フォークでのみ利用できますが、これを行うには賢い方法です。 –

答えて

0

ダウンロード()機能を試すことができます。詳細はhereをご覧ください。

exampleがあります。

+0

私はそれを見ましたが、ダウンロード機能で使用するURLがないために混乱しています。投稿した例を試しましたが、正しく実装しているかどうかはわかりません。あなたは正しいかどうかを確認するために編集のために私のOPをチェックできますか? – Mxracer888

+0

「送信」フォームを使用している場合は、1つのターゲットURLが存在する必要があります。ブラウザで生成されたページのソースコードを確認し、送信ボタンの周囲にフォームを配置すると、フォームの「アクションURL」が見つかります。可能であれば、テストページを表示することができます。 – Sphinx

+0

いくつかの掘削の後、私はそれを見つけることができました。今ダウンロード機能が動作します!ありがとう! – Mxracer888

関連する問題