Vb.net 如何在google visual basic中自动单击搜索按钮。网

Vb.net 如何在google visual basic中自动单击搜索按钮。网,vb.net,Vb.net,我有一个带有文本框、按钮和tabcontrol的表单 在按钮中,我有以下代码: [Dim browser As New WebBrowser() TabPage1.Controls.Add(browser) browser.Dock = DockStyle.Fill browser.Navigate(New Uri("http://www.google.com"))] 上面的代码可以工作,但我需要能够从我的文本框中搜索,当我点击按钮时,它会将我带到谷歌,然后自动输入我在文本框中搜索的单词,然后

我有一个带有文本框、按钮和tabcontrol的表单

在按钮中,我有以下代码:

[Dim browser As New WebBrowser()
TabPage1.Controls.Add(browser)
browser.Dock = DockStyle.Fill
browser.Navigate(New Uri("http://www.google.com"))]
上面的代码可以工作,但我需要能够从我的文本框中搜索,当我点击按钮时,它会将我带到谷歌,然后自动输入我在文本框中搜索的单词,然后点击谷歌上的搜索按钮。我试过了,但没用。谢谢

Dim textElement. As HtmlElement = browser.Document.All.GetElementsByName("q")(0)
textElement.SetAttribute("value", textbox.text")
Dim btnElement As HtmlElement = browser.Document.All.GetElementsByName("btnG")(0)
btnElement.InvokeMember("click")

在单击按钮之前,需要将焦点设置为textElement

textElement.Focus()
否则,页面显然不会运行搜索

您可以通过在控制台窗口中尝试与上面相同的基本步骤来看到这一点。直到现场有了焦点(从我的测试中),它们才起作用

(我还使用了mshtml类型库,以便在下面的完整代码中直接显示click函数)


我想你可以在你的按钮点击处理程序中使用这个

browser.navigate("https://www.google.co.in/search?q="+textbox.Text)
这将在谷歌搜索文本框中的文本。
您可以在不“自动单击搜索按钮”的情况下进行搜索,并且不必在html的文本元素中设置值。这对我有用。希望这能有所帮助。

我还需要在谷歌浏览器中搜索用户想要的文本,通过在按钮点击事件中添加下面的代码,它实现了我想要的

代码:


GetElementsByName返回一个元素集合,您必须迭代每个html元素,然后在检查元素的id@RahulRajan他发布的示例代码实际上只是从数组中获取了第一个索引,因此基于Google当前的网页布局和命名,应该可以。如果可能的话,使用GetElementsById将是一个更好的选择。是的,我会随时推荐GetElementsById。至少在这方面case@RahulRajan虽然以可靠的方式抓取另一个网站总是会带来一定的风险,但我不确定在这种情况下依赖id还是表单名称更好——我想知道哪一个更经常更改?为什么不将用户的搜索从文本框直接传递到浏览器控件-
browser.Navigate(新Uri(“https://www.google.com/search?q=“&yourUserSearchText”)
忘记任何点击技巧?请提供一些关于方法的信息和回答说明。
browser.navigate("https://www.google.co.in/search?q="+textbox.Text)
Dim sInfo As New ProcessStartInfo("https://www.google.co.in/search?q=" & TXT_Entidade.Text)

Try
    Process.Start(sInfo)
Catch ex As Exception
    Process.Start("iexplore.exe", sInfo.FileName)
End Try