C # Как нажать кнопку автоматически через веб-браузер - PullRequest
16 голосов
/ 04 июня 2011

HTML-код моей страницы клика:

<input type="submit" id="publishButton-ns" class="ubtn ubtn-block"
 name="publish" tabindex="10" value="Publish Post">

Я попробовал этот код для нажатия:

webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("click");

но кнопка не найдена.

Ответы [ 5 ]

26 голосов
/ 04 мая 2012

Это может вам помочь.

<input type="submit" value="Submit" />

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");  
foreach (HtmlElement el in elc)  
{  
   if (el.GetAttribute("type").Equals("submit"))  
   {  
        el.InvokeMember("Click");  
   }  
 }
6 голосов
/ 04 июня 2011

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

static void form1_Load() {
    // ...
    webBrowser1.onDocumentReady += webBrowser_DocumentReady;
}

static void webBrowser1_DocumentReady() {
    webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("Click");
}
2 голосов
/ 04 июня 2011

Попробуйте комбинацию из предложения @ adam и заглавных букв Click

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document
        .GetElementById("ctl00_main_LoginExpoPlanIt_LoginButton")
        .InvokeMember("Click");
}

Только что проверили это, и оно не работало с "щелчком", а с "Кликом" :))

Я использую .net 4

0 голосов
/ 04 июня 2011

РЕДАКТИРОВАТЬ: Это применимо, только если установлено runat="server", не применимо в этом случае, но оставляю за собой других на всякий случай, мои извинения за то, что пропустили это в вопросе.

ASP.Net меняет имяэлементы, которые он отображает на основе структуры, в которой они находятся, вы можете попробовать следующее, чтобы получить окончательное имя элемента:

webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click");
0 голосов
/ 04 июня 2011

Вы можете использовать jQuery, а затем сделать что-то вроде этого $ ("# publishButton-ns"). Click ();

http://www.jQuery.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...