C#登录网站

时间:2014-12-08 12:17:41

标签: c# login web automation webclient

我正在开展一个项目,我需要登录到Intranet网站并获取一些数据。关于如何通过程序登录网站有几个例子,但我无法使用这些示例,因为网站弹出(Windows安全)登录对话框如下:

enter image description here

我在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);

2 个答案:

答案 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 ,因为它支持:

  

操纵窗口和进程

     

与所有标准窗口控件交互