次のC#またはセレン解決策がある場合、私は疑問に思って:「開くか保存しますか?」を自動的にクリックする方法
私はウェブサーバをオフファイルをダウンロードするには、セレンを使用しています。
残念ながら、IE9ではこのポップアップ画面を無効にする方法はありません。
SAVEボタンをクリックするとC#で解決策がありますか?
次のC#またはセレン解決策がある場合、私は疑問に思って:「開くか保存しますか?」を自動的にクリックする方法
私はウェブサーバをオフファイルをダウンロードするには、セレンを使用しています。
残念ながら、IE9ではこのポップアップ画面を無効にする方法はありません。
SAVEボタンをクリックするとC#で解決策がありますか?
クライアント
WebClient client = new WebClient();
byte[] file = client.DownloadData("http://domain.com/default.aspx");
File.WriteAllBytes("helloworld.txt", file);
サーバー
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (MemoryStream memory = new MemoryStream())
using (StreamWriter writer = new StreamWriter(memory))
{
// The bytes written can be anything, does not have to be text
writer.WriteLine("hello, world");
writer.Flush();
Response.BinaryWrite(memory.ToArray());
}
Response.AddHeader("Content-Disposition", "Attachment; filename=helloworld.txt");
Response.AddHeader("Content-Type", "application/octet-stream");
Response.End();
}
}
あなただけではなく、私は、ファイルの物理的な場所がわからない、上記の例を見ることができるように、しかし、物理的な場所はありません!これは、私がメモリに書き込んだ後、レスポンスに生のバイトを書き込んだものですが、WebClient.DownloadData()はバイトをすべて同じにダウンロードできるようになります。バイトがどこから来たかは気にしません。お役に立てれば。
追加情報:さらに、なぜ上記の作品を説明する
いくつかのさらなる背景情報。
ブラウザの主な仕事は、HTTP要求を送信して応答を処理することです。幸いにも、彼らは私たちのために多くの不平を言っています。単純なWebページを表示するには、サーバーにHTTP-GETを送信し、応答本体でバイトを受信し、それらのバイトをテキストにデコードし、そのテキストを解析してHTML Webページを表示します。 Content/TypeヘッダーがText/HTMLであるため、このようなレスポンスを処理することはわかっています。 Content-Typeがtext/plainの場合、ブラウザはバイトをデコードし、解析することなくバイトを表示するだけで、ほとんどの場合、ブラウザは他のMIMEタイプも処理できます。 Text/XMLでは通常、XMLノードなどを折りたたんで展開することができます。これは、ブラウザがそのパーティクルMIMEタイプを処理する方法に依存します。
ブラウザに[名前を付けて保存]ダイアログボックスが表示された場合、これはブラウザがContent-Disposition:Attachmentヘッダーを使用して応答を処理する方法です。このヘッダーは、コンテンツを表示または表示するのではなく、代わりに添付ファイルとしてダウンロードするようブラウザに指示します。
WebClient/HttpWebRequestクラスを使用する場合は、基本的に独自の小型ブラウザを作成していますが、MIMEタイプ/ HTTPヘッダーの処理方法は完全にあなた次第です。これにより、[開く]または[保存]ダイアログボックスでプロンプトを表示せずに、Content-Dispositionレスポンス(またはそのようなレスポンス)からバイトを保存することができます。
ありがとうございますが、ファイルがWebサーバーによって自動的に生成されるため、私はこれを行うことはできません、それに明示的なリンクはありません –
それが直接リンクかWebサーバーが書いている生のバイトをレスポンスに追加するには、それらのバイトをバイト[]としてダウンロードしてファイルに保存することができます。 – Despertar
確かに、どのようにファイルのURLがわかりますか? URLは –
csvファイルを解凍しても問題がなければ、zipファイルが自動的にダウンロードされます。 – BumbleB2na
私は –
のフォーマットを制御できません。これはおそらくこれが役に立ちます:http://blog.codecentric.de/en/2010/07/file-downloads-with-selenium-mission-impossible/ – BumbleB2na