Я выяснил, в чем я был неправ, я позвонил wb1.Document.GetElementById("myId").InvokeMember("click");
, но wb1 не был инициализирован, поэтому я не вызвал .InvokeMember("click")
для существующего элемента. Я изменил таким образом:
((WebBrowser)sender).Document.GetElementById("myId").InvokeMember("Click");
в методе Br_DocumentCompleted
, и теперь он работает. Но теперь у меня есть другая проблема: я изменил метод Br_DocumentCompleted
таким образом, потому что мне нужно нажать на кнопку на новой странице, чтобы открыть третью страницу:
private static void Br_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//Retrieve string content of document
var document = ((WebBrowser)sender).Document;
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)document.DomDocument;
var content = documentAsIHtmlDocument3.documentElement.innerHTML;
if (((WebBrowser)sender).Url.AbsoluteUri.Contains("startpage.aspx"))
{
//Click on button
((WebBrowser)sender).ScriptErrorsSuppressed = true;
((WebBrowser)sender).Document.GetElementById("myId").InvokeMember("Click");
}
else if (((WebBrowser)sender).Url.AbsoluteUri.Contains("page1.aspx"))
{
((WebBrowser)sender).Document.GetElementById("btn_send").InvokeMember("Click");
}
else if (((WebBrowser)sender).Url.AbsoluteUri.Contains("page2.aspx"))
{
//Some code
Application.ExitThread();
}
}
И "btn_send" на странице1 имеет этот код:
<input onclick="openEVERFANCY('#CChildren','N'); return false;" id=btn_send class=buttonVerifyDisp type=button value=GO>
и когда я вызываю ((WebBrowser)sender).Document.GetElementById("btn_send").InvokeMember("Click");
для этой кнопки, она не переходит на третью страницу, даже если у меня есть обработчик событий DocumentCompleted