我正在开展一个项目,我需要登录到Intranet网站并获取一些数据。关于如何通过程序登录网站有几个例子,但我无法使用这些示例,因为网站弹出(Windows安全)登录对话框如下:
我在Firefox中尝试了Selenium IDE,并尝试在C#中导出测试用例,但它没有记录该站点的登录操作。
任何人都可以帮我吗?
解决方案:
以下是我在获得帮助后得到的代码。
String siteUrl = "http://XXXXXXXXXXXXXXX";
String downLoadPageUrl = "http://XXXXXXXXXXXXXXX/Search.aspx";
String mainPageUrl = @"http://XXXXXXXXXXXXXXX/Main.aspx";
String UserName = "aUserName";
String Password = "aPassword";
String Domain = "aDomain";
NetworkCredential myCred = new NetworkCredential(UserName, Password, Domain);
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri(siteUrl), "NTLM", myCred);
NameValueCollection parameters = new NameValueCollection();
parameters.Add("ExcelExport","true");
WebClient wc = new WebClient();
wc.Credentials = myCache;
Stream sr = wc.OpenRead(siteUrl);
wc.OpenRead(mainPageUrl);
byte[] response = wc.UploadValues(downLoadPageUrl, parameters);
WebHeaderCollection whc = wc.ResponseHeaders;
String excelName = whc["Content-Disposition"];
outputFile = excelName.Split('=')[1];
outputFile = String.Format("{0}\\{1}", Path.GetTempPath(), outputFile);
File.WriteAllBytes(outputFile,response);
答案 0 :(得分:0)
微软正在提供Web ui测试支持。看看是否有帮助..
http://msdn.microsoft.com/en-us/library/ms182536(v=vs.90).aspx
答案 1 :(得分:0)
您可以使用PowerShell WebClient和当前会话
$webclient = new-object System.Net.WebClient
$credCache = new-object System.Net.CredentialCache
$creds = new-object System.Net.NetworkCredential("username","password")
$credCache.Add("url", "Basic", $creds)
$webclient.Credentials = $credCache
在您的C#代码中只有call the script。
另一种方法是使用 autoit ,因为它支持:
操纵窗口和进程
与所有标准窗口控件交互