1

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 Answers 3

3

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"); } } } 
Sign up to request clarification or add additional context in comments.

1 Comment

This works but I needed to add this && e.Url.ToString()!="about:blank" to DocumentCompleted if statement
0

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.

Comments

0

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 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.