点击页面的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");
但是没找到按钮。
答案 0 :(得分:25)
这可能会对你有帮助。
<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");
}
}
答案 1 :(得分:5)
您是否在等待首页加载?您应该在代码中绑定一个函数以等待页面加载,然后单击按钮:
static void form1_Load() {
// ...
webBrowser1.onDocumentReady += webBrowser_DocumentReady;
}
static void webBrowser1_DocumentReady() {
webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("Click");
}
答案 2 :(得分:2)
尝试结合使用@adam的建议并将Click
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document
.GetElementById("ctl00_main_LoginExpoPlanIt_LoginButton")
.InvokeMember("Click");
}
刚测试了这个并且它不适用于“点击”但是使用“点击”:)
我正在使用.net 4
答案 3 :(得分:0)
编辑:这仅适用于设置runat="server"
的情况,在这种情况下不适用,但为了以防其他情况,请原谅我在问题中遗漏了这一点。
ASP.Net根据它们所在的结构更改它所呈现的元素的名称,您可以尝试以下方法来获取该元素的最终名称:
webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click");
答案 4 :(得分:-1)
您可以使用jQuery然后执行类似$(“#publishButton-ns”)的操作。单击();