我有一个网站,我正在使用selenium进行集成测试。
我在那里使用来自页面的多个变量生成链接。 我想验证下载弹出框是否尽可能显示,当我模拟点击链接下载文件时。
我知道我可以让JsUnit为我做这件事。
有什么想法吗?
答案 0 :(得分:1)
使用下载时,Selenium很糟糕。点击该链接会让您遇到麻烦。
但是,您可以针对指定的链接发出请求using HttpURLConnection,Apache HttpComponents(或者只是文件通过URL)并声明200 OK
响应。或者尝试使用Selenium获取文件 - this is my favourite tool。
答案 1 :(得分:1)
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;
}