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”)的操作。单击();