2015-03-24 4 views
0

Я знаю, что эта проблема была рассмотрена здесь, но я не могу заставить любой из примеров кода работать. В принципе, я хотел бы симулировать нажатие на кнопку на веб-странице в приложении C# ASP.NET. Мой код подключается к веб-странице, но не вызывает событие click.Автоматическое нажатие кнопки веб-страницы в приложении C# ASP.NET

Вот мой код:

WebBrowser webBrowser1 = new WebBrowser(); 
webBrowser1.Navigate("URL to navigate to"); 
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) System.Windows.Forms.Application.DoEvents(); 
webBrowser1.Document.GetElementById("agree_terms_use").InvokeMember("click"); 

HTML:

<button id=agree_terms_use name="agreementValue" type="submit" value="Agree">Agree</button>   

ответ

0

Я знаю, что это немного стар, но я столкнулся с той же проблемой (при условии, что это связано с федералами новых Перемещение каталога маршрутизации E-Payment и страница «Условия использования/Соглашение»). Исходя из вашего исходного кода, я смог заставить нижеследующее работать и создать файл

//Load page that will end up as the "Agreement" page 
WebBrowser webBrowser1 = new WebBrowser(); 
webBrowser1.Navigate(url); 
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) 
    System.Windows.Forms.Application.DoEvents(); 

//submit agree button click 
webBrowser1.Document.GetElementById("agree_terms_use").InvokeMember("Click"); 
webBrowser1.Document.Forms[1].InvokeMember("submit"); 

//Navigate back to the page which should now allow access to the data 
WebBrowser webBrowser2 = new WebBrowser(); 
webBrowser2.Navigate(url); 
while (webBrowser2.ReadyState != WebBrowserReadyState.Complete) 
    System.Windows.Forms.Application.DoEvents(); 

HtmlElement body = webBrowser2.Document.Body; 
string webResults = body.InnerHtml; 
webResults = webResults.Replace("<PRE>", "").Replace("</PRE>", ""); 
webResults = webResults.Replace("&amp;", "&"); 

StreamWriter file = File.CreateText(outputFile); 
file.Write(webResults); 
file.Close();