为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

互换的青春 2018-08-10 09:06:11
现在要获得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 跟百度的机制不一样。 帮帮忙!!!
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

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");
                }

            }


查看完整回答
反对 回复 2018-08-13
  • 1 回答
  • 0 关注
  • 684 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信