C#如何通过WebBrowser自动单击按钮

点击页面的Html代码是:

 

我尝试使用此代码进行点击:

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

但是没找到按钮。

这可能对你有所帮助。

  HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input"); foreach (HtmlElement el in elc) { if (el.GetAttribute("type").Equals("submit")) { el.InvokeMember("Click"); } } 

您是否在等待首页加载? 您应该在代码中绑定一个函数以等待页面加载,然后单击按钮:

 static void form1_Load() { // ... webBrowser1.onDocumentReady += webBrowser_DocumentReady; } static void webBrowser1_DocumentReady() { webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("Click"); } 

尝试结合@adam的建议和大写Click

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

刚试过这个,它不能用“点击”,但用“点击”:)

我正在使用.net 4

编辑:这只适用于设置runat="server" ,在这种情况下不适用但为了以防万一而留给其他人,我在问题中遗漏了道歉。

ASP.Net根据它们所在的结构更改它呈现的元素的名称,您可以尝试以下方法来获取元素的最终名称:

 webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click"); 

您可以使用jQuery然后执行类似$(“#publishButton-ns”)的操作。单击();

http://www.jQuery.com/