Perform a click on a Webbrowser control

后端 未结 3 893
挽巷
挽巷 2021-01-16 11:43

Does anybody know a good way to perform a click on a control inside of a webbrowser? Preferably from ID?

Thanks, ALL suggestions are appreciated.

相关标签:
3条回答
  • 2021-01-16 12:25

    You can't directly call click on something in the control. However, you can register some JavaScript into the control and perform the click that way.

    See How to inject Javascript in WebBrowser control? for details.

    0 讨论(0)
  • 2021-01-16 12:36

    Use the HtmlElement.InvokeMember("click") method. Here's a sample form that uses the Google "I feel lucky" button:

    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");
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-16 12:36

    This isn't really for an ID but you can do the same thing with it by using the value button.

    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
    
    0 讨论(0)
提交回复
热议问题