我想要用webbrowser 模拟google 的自动搜索。

现在要获得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 跟百度的机制不一样。 帮帮忙!!!


互换的青春
浏览 688回答 1
1回答

眼眸繁星

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");                 }             }
打开App,查看更多内容
随时随地看视频慕课网APP