[英]How do you click a button in a webbrowser control?
例如,使用代码而没有用户输入,我如何让我的程序点击谷歌上的“搜索”按钮(假设我已填写搜索框并在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
添加文字以搜索google.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}
。 我已经为网页编写了很多脚本,并且发现我必须使用两者的组合(尽管SendKeys
比@AleWin的答案中的方法要麻烦得多)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.