private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Url = new Uri("指定url地址为百度首页
}
private void button1_Click(object sender, EventArgs e)
{
HtmlElement searchWords = webBrowser1.Document.All["kw"];//获取百度搜索的文本框
HtmlElement searchButton = webBrowser1.Document.All["su"];//获取百度搜索的按钮
searchWords.SetAttribute("value", "赵薇");//给百度搜索的文本框赋值
searchButton.InvokeMember("click");//调用百度搜索按钮的点击事件
}
在winform中拖一个webbrowser控件,然后在相应事件中键入如上代码,就可以实现自助搜索(无需在文本框中输入关键词赵薇,再点搜索按钮,而是直接点击一个按钮进行搜索)。
原理很简单,就是通过查找在webbrowser控件生成的html代码中的input元素或button元素的id,通过api实现模拟赋值和查找工作。
再附一个稍微复杂的一点的例子。
如果生成的html比较复杂,比如含iframe这类的标签时该如何处理呢?
比如,我们要访问qq空间里面的留言功能时,通过google chrome浏览器看到的html代码,很复杂,好在我们也有办法处理
private void Form1_Load(object sender, EventArgs e)
{
this.webBrowser1.Url = new Uri("
}
private void button1_Click(object sender, EventArgs e)
{
if (!webBrowser1.IsBusy)//判断有没有加载新的文档
{
HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//获取到iframe id为tgb下面的button
searchButton.InvokeMember("click");
}
}