根据我的经验,最可靠的方法是使用javascript。在.Net中效果很好。要进行测试,请在Firefox或Internet Explorer中依次浏览到以下地址:
http://www.google.com
javascript:function f(){document.forms[0]['q'].value='stackoverflow';}f();
javascript:document.forms[0].submit()
这将在Google上搜索“ stackoverflow”。要使用Webbrowser控件在VB .Net中进行此操作,请执行以下操作:
WebBrowser1.Navigate("http://www.google.com")
Do While WebBrowser1.IsBusy OrElse WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Threading.Thread.Sleep(1000)
Application.DoEvents()
Loop
WebBrowser1.Navigate("javascript:function%20f(){document.forms[0]['q'].value='stackoverflow';}f();")
Threading.Thread.Sleep(2000) 'wait for javascript to run
WebBrowser1.Navigate("javascript:document.forms[0].submit()")
Threading.Thread.Sleep(2000) 'wait for javascript to run
请注意如何将URL中的空格转换为%20。我不确定这是否必要,但不会造成伤害。第一个javascript在函数中很重要。对Sleep()的调用是为了等待Google加载以及javascript内容。如果页面无法加载,则“ Do While循环”可能永远运行,因此出于自动化目的,其计数器将在60秒后超时。
当然,对于Google,您可以直接导航至www.google.com?q=stackoverflow,但是如果您的网站具有隐藏的输入字段等,那么这就是方法。仅适用于HTML网站-Flash是另一回事。
我建议您尝试 AutoHotkey 来实现网页自动化。语法有时会有些不一致,但是我发现该语言非常灵活。
– StevoisiakAugust 29, 2017 16:50