2011-12-27 5 views
2

Я использую этот код для загрузки файла с сервера.Как нажимать кнопку на веб-странице

Ссылка сервера, откуда мне нужно, чтобы загрузить файл является:

http://www.mcxindia.com/sitepages/BhavCopyDateWise.aspx

 var forms = new NameValueCollection(); 

     forms["__EVENTARGUMENT"] = ""; 
     forms["__VIEWSTATE"] = ExtractVariable(s, "__VIEWSTATE"); 
     forms["mTbdate"] = "12/22/2011"; 
     forms["__EVENTVALIDATION"] = __EVENTVALIDATION; 
     forms["mImgBtnGo"] = "?"; 
     forms["__EVENTTARGET"] = "btnLink_Excel"; 

     webClient.Headers.Set(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded"); 

     var responseData = webClient.UploadValues(@"http://www.mcxindia.com/sitepages/BhavCopyDateWise.aspx", "POST", forms); 
     System.IO.File.WriteAllBytes(@"c:\11152011.csv", responseData); 

Его загрузив файл на определенную дату в текстовом поле, который по умолчанию на сайте прямо сейчас.

мне нужно нажать на кнопку под названием mImgBtnGo перед тем, чтобы загрузить файл с указанной даты

в mTbdate.

Я не знаю, что я должен сделать, чтобы нажать кнопку mImgBtnGo.

То, что я должен написать здесь

   forms["mImgBtnGo"] = "?"; 

ответ

4

с помощью fiddler Я думаю, что это то, что вы хотите:

class Program 
    { 

     static string Extract(string s, string tag) 
     { 
      var startTag = String.Format("id=\"{0}\" value=\"", tag); 
      var eaPos = s.IndexOf(startTag) + startTag.Length ; 
      var eaPosLast = s.IndexOf('"', eaPos); 
      return s.Substring(eaPos, eaPosLast-eaPos); 
     } 

     static void Main(string[] args) 
     { 

      WebClient webClient = new WebClient(); 

      var firstResponse = webClient.DownloadString(@"http://www.mcxindia.com/sitepages/BhavCopyDateWise.aspx"); 

      var forms = new NameValueCollection(); 
      forms["__EVENTARGUMENT"] = ""; 
      forms["__VIEWSTATE"] = Extract(firstResponse, "__VIEWSTATE"); 
      forms["mTbdate"] = "12/22/2011"; 
      forms["__EVENTVALIDATION"] = Extract(firstResponse, "__EVENTVALIDATION"); 
      forms["mImgBtnGo.x"] = "10"; 
      forms["mImgBtnGo.y"] = "10"; 
      forms["ScriptManager1"] = "MupdPnl|mImgBtnGo"; 
      // forms["__EVENTTARGET"] = "btnLink_Excel"; 
      webClient.Headers.Set(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded"); 

      String secondResponse = UTF8Encoding.UTF8.GetString(
       webClient.UploadValues(@"http://www.mcxindia.com/sitepages/BhavCopyDateWise.aspx", "POST", forms) 
      ); 

      forms = new NameValueCollection();   
      forms["__EVENTARGUMENT"] = ""; 
      forms["__VIEWSTATE"] = Extract(secondResponse, "__VIEWSTATE");   
      forms["mTbdate"] = "12/22/2011"; 
      forms["__EVENTVALIDATION"] = Extract(secondResponse, "__EVENTVALIDATION");   
      // forms["mImgBtnGo"] = "?";   
      forms["__EVENTTARGET"] = "btnLink_Excel";   
      webClient.Headers.Set(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");   
      var responseData = webClient.UploadValues(@"http://www.mcxindia.com/sitepages/BhavCopyDateWise.aspx", "POST", forms);   
      System.IO.File.WriteAllBytes(@"c:\prj\11152011.csv", responseData);  
      } 

    } 
+0

нет его загрузок исходного кода страницы –

+0

Ooh, вы хотите, чтобы загрузить лист Excel ! Вы можете оставить mImgBtnGo все вместе. он не нужен в POST. – rene

+0

, но его загрузка даты 12/26/2011 только не до даты –

Смежные вопросы