我可能错过了一个非常基本的东西,但我只是不明白为什么这不起作用。
我希望根据一些用户输入填写一些网络表单。
我已经在 vbscript 中写了这个,它可以完美地工作。现在我想将它导入到 VB。
我的 2 个主要问题 atm。
之前,我会有一段代码:
For Each wnd In CreateObject("Shell.Application").Windows
If InStr(1, wnd.FullName, "iexplore.exe", vbTextCompare) > 0 Then
Set IE = wnd
Exit For
End If
Next
用于决定使用哪个 Internet Explorer 窗口。但是,如果我在 VB 中使用这种形式,我几乎会错过任何类型的事件处理。我不能使用 IsBusy,我不能使用 DocumentCompleted 或任何东西。
因此,我必须将 IE 声明为浏览器。
Dim IE As New WebBrowser
看起来不错..除了..现在我无法在任何地方导航,没有创建浏览器,没有任何事情发生。所以当我运行我的代码时:
IE.Navigate("www.awebwithusernameandpasswordform.org")
IE.Visible = True
Helem = IE.Document.GetElementById("username")
Helem.Value = "xxxx"
Helem = IE.Document.GetElementById("password")
Helem.Value = "xxxx"
Helem = IE.Document.Forms("signupForm")
Helem.Submit()
它只是在元素“用户名”处失败,因为它永远无法导航到网站。
它就像它只是忽略了 IE.Navigate。我尝试使用 process.start() 运行一个新进程,但这也不起作用,它仍然没有为我打开网页或任何东西。
其次,当文档完全加载时,我在检查 vb 时遇到了重大问题。在 VBS 中我使用
Do while ie.readystate <> 4 or ie.busy or ie.document.readystate <> "complete"
wscript.sleep 500
Loop
Do until ie.document.readystate = "complete"
wscript.sleep 500
Loop
这就像一个魅力。
在 VB 中,无法识别 ie.document.readystate,而且我似乎无法让 DocumentCompleted 事件处理工作。我从这个网站尝试了几件事,但要么他们只是让一切都挂起,要么由于各种原因它不起作用。我尝试了如何等待 WebBrowser 在 VB.NET 中完全加载中的 2 个解决方案?但他们都只是让脚本挂起。
任何提示将非常感谢..