如何从C#单击嵌入式Web控件上的按钮?

时间:2011-10-29 03:21:47

标签: c# .net html

webBrowser1对象中加载了一个页面。它有一个“按钮”标签,这是我需要点击的按钮。这是基本按钮。没有JavaScript等等。

我试过了:

1)点击“enter”:

webBrowser.Document.GetElementsByTagName("button")[0].Focus();
Sendkeys.Sendwait("{ENTER}");

那不起作用。

2)调用“点击”事件:

webBrowser.Document.GetElementsByTagName("button")[0].InvokeMember("click");

这也不起作用,因为它不是JavaScript。

3)“点击”处理程序:

webBrowser.Document.GetElementsByTagName("button")[0].Click +=
        new System.EventHandler(button_click1);

这也行不通,因为根据我的阅读,这是一个事件处理程序,在用户实际点击此按钮后触发。

所以我用完了选项。我还能尝试什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用c#

在Web浏览器中捕获按钮事件
HtmlElement el = webBrowser1.Document.All["mybutton"];
object obj = el.DomElement;
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]); 

OR

private void Form1_Load(object sender, EventArgs e)
{
   this.wb.Url = new Uri("https://login.yahoo.com/config/login_verify2?.intl=gr&.src=ym");
   this.wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    HtmlElement username = this.wb.Document.All["username"];
    username.SetAttribute("value", "kataras2012@yahoo.gr");
    HtmlElement pass = this.wb.Document.All["passwd"];
    pass.SetAttribute("value", "passTest");
    HtmlElement goButton = this.wb.Document.All[".save"];
    goButton.InvokeMember("click");

    return;
}

我希望它会帮助你