0
我試圖將用VBA編寫的腳本遷移到我已經在VB.NET中編寫的應用程序中,作爲附加功能。通過使用VB.NET填充HTML元素自動登錄頁面
我知道VBA和VB.NET語言差異很大,我一直在努力遷移我需要的代碼段。
我需要打開一個Internet Explorer頁面,填寫兩個用於用戶名和密碼的文本框,然後自動按下提交/登錄按鈕。
在VBA中,我能夠使用下面的代碼來完成此操作。
Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer
Dim MyHTML_Element As IHTMLElement
Dim MyURL As String
'Ignore errors
On Error GoTo Err_Clear
MyURL = Address
Set MyBrowser = New InternetExplorer 'Open Internet Explorer
MyBrowser.Silent = True 'Silence popups & Errors
MyBrowser.Navigate MyURL 'Browse
MyBrowser.Visible = True 'Obvious
Do
'Wait till finished
Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.Document
'Enter user/password
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
If MyHTML_Element.Name = ("username") Then
MyHTML_Element.Value = Username 'Variable to be passed to sub
ElseIf MyHTML_Element.Name = ("password") Then
MyHTML_Element.Value = Password 'Variable to be passed to sub
ElseIf MyHTML_Element.Type = "submit" Then
MyHTML_Element.Click: Exit For
End If
Next
Err_Clear:
If Err <> 0 Then
'Debug.Assert Err = 0
Err.Clear
Resume Next
End If
當這個移動到VB.NET,甚至加入我會使用Microsoft Internet控制的參考文獻後,和Microsoft HTML對象庫,我收到幾個錯誤,例如:
Dim MyHTML_Element As IHTMLElement '"ITHMLElement" is ambiguous in the namespace 'mshtml'
Loop Until MyBrowser.Readystate = READYSTATE_COMPLETE 'Not declared
我以前使用過Visual Basic,但沒有用它來操作Web瀏覽器中的HTML頁面的值,並且在VB.NET在線上一直沒能找到關於這個的更多信息。
我希望有人可以提供一些對我的洞察,或指向我在正確的方向,在此先感謝!