你如何点击浏览器控件中的button?
例如,使用代码和没有用户input,我怎么会让我的程序点击谷歌上的“search”button(假设我已经填入search框,并在google.com)
webBrowser1.Navigate("http://www.google.com");
如果你有一个ID
使用这个:
webBrowser1.Document.GetElementById("id").InvokeMember("click");
如果你有TagName
使用这个
webBrowser1.Navigate("http://www.google.com");
在Web浏览器DocumentCompleted事件中
HtmlElement textElement = webBrowser1.Document.All.GetElementsByName("q")[0]; textElement.SetAttribute("value", "your text to search"); HtmlElement btnElement = webBrowser1.Document.All.GetElementsByName("btnG")[0]; btnElement.InvokeMember("click");
如果你有名字Class
使用这个:
HtmlElementCollection classButton = webBrowser1.Document.All; foreach (HtmlElement element in classButton) { if (element.GetAttribute("className") == "button") { element.InvokeMember("click"); } }
要在TextBox
添加文本来searchgoogle.com,请使用以下命令:
webBrowser1.Document.GetElementById("gs_tti0").InnerText = "hello world";
试试下面的代码:
public WebBrowser webBrowser1 = new WebBrowser(); private void WebForm_Load(object sender, EventArgs e) { try { webBrowser1.Height = 1000; webBrowser1.Width = 1000; this.Controls.Add(webBrowser1); webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted); this.webBrowser1.Navigate("www.google.com.au"); } catch { }
在你的c#表格中写下下面的函数:
public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { var webBrowser = sender as WebBrowser; webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted; HtmlElement textElement = webBrowser.Document.All.GetElementsByName("q")[0]; textElement.SetAttribute("value", "mlm company"); HtmlElement btnElement = webBrowser.Document.All.GetElementsByName("btnG")[0]; btnElement.InvokeMember("click"); }
除了使用InvokeMember
,如果您的网页在被ID
或Class
调用时出现问题,您可以使用.NET中的SendKeys
类尝试使用{TAB}
和{ENTER}
。 我写了很多网页的脚本,发现我不得不使用两者的组合(尽pipeSendKeys
比@AleWin的答案中的方法要复杂得多)。
这里是SendKeys类的链接。