WebBrowser是一個很好用的網頁瀏覽器物件,以IE為核心,可以對網頁進行任何操作,例如自動輸入帳號密碼並登入,下面以Facebook自動登入為例:
首先要找出輸入資料的INPUT TAG的NAME或ID(建議使用Chrome瀏覽器來找),我們瀏覽https://www.facebook.com/找到登入的表單(Form),發現表單的ID為「login_form」還有兩個關鍵的INPUT
TAG是「電子郵件或電話」、「密碼」,這兩個HTML Element的ID分別為「email」以及「pass」。
回到程式碼的部分,一般來說會在DocumentCompleted
事件中進行操作,我們在Document
屬性中找到特定的HTML Element,再用SetAttribute
方法指定屬性的值,或是用InvokeMember
方法執行submit方法。下面是最基本的填入資料與送出表單(即登入)的程式碼:
view source
print?
1
Private Sub
WebBrowser1_DocumentCompleted(ByVal
sender As System.Object, ByVal e
As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompleted
2
WebBrowser1.Document.GetElementById("email").SetAttribute("value", "FB的電子郵件或電話")
3
WebBrowser1.Document.GetElementById("pass").SetAttribute("value", "FB的密碼")
4
WebBrowser1.Document.GetElementById("login_form").InvokeMember("submit")
5
End Sub
但是如果使用者瀏覽到其他網頁,或是登入的表單不出現在網頁中,可以用If 來判斷特定的HTML Element是否存在:
view source
print?
1
Dim form As HtmlElement
= WebBrowser1.Document.GetElementById("login_form")
2
3
If form IsNot Nothing Then
4
form.All("email").SetAttribute("value", "FB的電子郵件或電話")
5
form.All("pass").SetAttribute("value", "FB的密碼")
6
form.InvokeMember("submit")
7
End If
如此就可以寫出一個可以自動填入表單資料的程式,再以此基礎則可以對網頁做出更多操作,像是判斷是否登入失敗或是取得網頁中特定的資料。
首先要找出輸入資料的INPUT TAG的NAME或ID(建議使用Chrome瀏覽器來找),我們瀏覽https://www.facebook.com/找到登入的表單(Form),發現表單的ID為「login_form」還有兩個關鍵的INPUT
TAG是「電子郵件或電話」、「密碼」,這兩個HTML Element的ID分別為「email」以及「pass」。
回到程式碼的部分,一般來說會在DocumentCompleted
事件中進行操作,我們在Document
屬性中找到特定的HTML Element,再用SetAttribute
方法指定屬性的值,或是用InvokeMember
方法執行submit方法。下面是最基本的填入資料與送出表單(即登入)的程式碼:
view source
print?
1
Private Sub
WebBrowser1_DocumentCompleted(ByVal
sender As System.Object, ByVal e
As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompleted
2
WebBrowser1.Document.GetElementById("email").SetAttribute("value", "FB的電子郵件或電話")
3
WebBrowser1.Document.GetElementById("pass").SetAttribute("value", "FB的密碼")
4
WebBrowser1.Document.GetElementById("login_form").InvokeMember("submit")
5
End Sub
但是如果使用者瀏覽到其他網頁,或是登入的表單不出現在網頁中,可以用If 來判斷特定的HTML Element是否存在:
view source
print?
1
Dim form As HtmlElement
= WebBrowser1.Document.GetElementById("login_form")
2
3
If form IsNot Nothing Then
4
form.All("email").SetAttribute("value", "FB的電子郵件或電話")
5
form.All("pass").SetAttribute("value", "FB的密碼")
6
form.InvokeMember("submit")
7
End If
如此就可以寫出一個可以自動填入表單資料的程式,再以此基礎則可以對網頁做出更多操作,像是判斷是否登入失敗或是取得網頁中特定的資料。