现在要获得google 输入框, 然后把关键字放到里面去,然后点击 google搜索 按钮。
我的办法是://keyword 就是你要搜索的关键字
HtmlElement html_input = webBrowser2.Document.All["lst-ib"];
html_input.SetAttribute("value", KeyWord);
foreach (var item in webBrowser2.Document.GetElementsByTagName("btnG"))
{
if (item.GetType().ToString() == "submit")
{
HtmlElement html_btn = (HtmlElement)item;
html_btn.InvokeMember("click");
}
}
问题是现在的值都是空的。 取不到 那个输入框。 奇怪 应该怎么搞呢。 我试baidu是可以的。可能google 跟百度的机制不一样。 帮帮忙!!!
baidu里面不知道你是怎么可以的,但是你上面这段代码肯定是不行的,里面有两处错误。我修改了一下并且加上了注释
HtmlElement html_input = webBrowser2.Document.All["lst-ib"];
html_input.SetAttribute("value", KeyWord);
//foreach (var item in webBrowser2.Document.GetElementsByTagName("btnG"))
//你上面这句话中GetElementsByTagName("btnG")是查不出来东西的,因为btnG不是TagName,而是Name
foreach (var item in webBrowser2.Document.GetElementsByTagName("input"))
{
//if (item.GetType().ToString() == "submit")
//你上面这句话中如果item不为空,
//那么item.GetType().ToString()的值也只是System.Windows.Forms.HtmlElement
//怎么可能"System.Windows.Forms.HtmlElement"== "submit"?
if(((System.Windows.Forms.HtmlElement)item).Name=="btnG")
{
HtmlElement html_btn = (HtmlElement)item;
html_btn.InvokeMember("click");
}
}
1st-ib这名称你的好像也不对,数字1和字母l看着可能差不多,最好直接从html源码中复制。