单击Webbrowser控件

时间:2011-03-30 22:32:28

标签: vb.net browser

有人知道在webbrowser内部执行控件的一个好方法吗?优选来自ID?

谢谢,所有建议都表示赞赏。

3 个答案:

答案 0 :(得分:3)

使用HtmlElement.InvokeMember(“click”)方法。这是一个使用Google“我感觉很幸运”按钮的示例表单:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        webBrowser1.Url = new Uri("http://google.com");
        webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
    }

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
        if (webBrowser1.Url.Host.EndsWith("google.com")) {
            HtmlDocument doc = webBrowser1.Document;
            HtmlElement ask = doc.All["q"];
            HtmlElement lucky = doc.All["btnI"];
            ask.InnerText = "stackoverflow";
            lucky.InvokeMember("click");
        }
    }
}

答案 1 :(得分:0)

您无法直接在控件中的某些内容上调用click。但是,您可以将一些JavaScript注册到控件中并以这种方式执行单击。

有关详细信息,请参阅How to inject Javascript in WebBrowser control?

答案 2 :(得分:0)

这不是一个ID,但你可以使用值按钮来做同样的事情。

Dim allelements As HtmlElementCollection = WebBrowser1.Document.All

For Each webpageelement As HtmlElement In allelements

If webpageelement.GetAttribute("value") = "Log In" Then

webpageelement.InvokeMember("click")

End If

Next