我有一个网站,我在其中使用 selenium 进行集成测试。
我有使用页面中的多个变量生成的链接。当我模拟点击链接下载文件时,我想验证下载弹出框是否显示。
我知道我可以让 JsUnit 为我做到这一点。
有任何想法吗?
我有一个网站,我在其中使用 selenium 进行集成测试。
我有使用页面中的多个变量生成的链接。当我模拟点击链接下载文件时,我想验证下载弹出框是否显示。
我知道我可以让 JsUnit 为我做到这一点。
有任何想法吗?
Selenium 在处理下载时很糟糕。点击链接会给你带来麻烦。
但是,您可以使用 HttpURLConnection、Apache HttpComponents(或者可能只是通过URL获取的文件)为指定的链接发出请求并断言200 OK
响应。或者尝试获取文件 -这是我最喜欢的 Selenium 工具。
Thnx to 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;
}