統合テストにセレンを使用しているWebサイトがあります。
ページから複数の変数を使用して生成されたリンクがあります。可能な限りダウンロードポップアップボックスが表示されていることを確認したいのですが、シミュレートしているときにリンクをクリックしてファイルをダウンロードします。
私は私のためにそれをするJsUnitを持つことができることを知っています。
何か案は?
統合テストにセレンを使用しているWebサイトがあります。
ページから複数の変数を使用して生成されたリンクがあります。可能な限りダウンロードポップアップボックスが表示されていることを確認したいのですが、シミュレートしているときにリンクをクリックしてファイルをダウンロードします。
私は私のためにそれをするJsUnitを持つことができることを知っています。
何か案は?
Seleniumは、ダウンロードを操作するときにお粗末です。リンクをクリックすると問題が発生します。
ただし、指定されたリンクに対してHttpURLConnection、Apache HttpComponents(またはファイルがURLを通過するだけ)を使用して要求を行い、200 OK
応答をアサートすることはできます。または、ファイルを取得してみてください。これは、Seleniumでこれを行うための私のお気に入りのツールです。
ThnxからSlanecまで私はあなたの例を取り上げました。
調査の結果、最善の解決策はこの方針に沿ったものになると判断しました。
public int GetFileLenghtFromUrlLocation(string location)
{
int len = 0;
int timeoutInSeconds = 5;
// paranoid check for null value
if (string.IsNullOrEmpty(location)) return 0;
// Create a web request to the URL
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(location);
myRequest.Timeout = timeoutInSeconds * 1000;
myRequest.AddRange(1024);
try
{
// Get the web response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
// Make sure the response is valid
if (HttpStatusCode.OK == myResponse.StatusCode)
{
// Open the response stream
using (Stream myResponseStream = myResponse.GetResponseStream())
{
if (myResponseStream == null) return 0;
using (StreamReader rdr = new StreamReader(myResponseStream))
{
len = rdr.ReadToEnd().Length;
}
}
}
}
catch (Exception err)
{
throw new Exception("Error saving file from URL:" + err.Message, err);
}
return len;
}