摘要:[VB.NET] 使用WebBrowser自動填入表單資料-以Facebook自動登入為例
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方法。下面是最基本的填入資料與送出表單(即登入)的程式碼:
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Document.GetElementById("email").SetAttribute("value", "FB的電子郵件或電話")
WebBrowser1.Document.GetElementById("pass").SetAttribute("value", "FB的密碼")
WebBrowser1.Document.GetElementById("login_form").InvokeMember("submit")
End Sub
但是如果使用者瀏覽到其他網頁,或是登入的表單不出現在網頁中,可以用If 來判斷特定的HTML Element是否存在:
Dim form As HtmlElement = WebBrowser1.Document.GetElementById("login_form")
If form IsNot Nothing Then
form.All("email").SetAttribute("value", "FB的電子郵件或電話")
form.All("pass").SetAttribute("value", "FB的密碼")
form.InvokeMember("submit")
End If
如此就可以寫出一個可以自動填入表單資料的程式,再以此基礎則可以對網頁做出更多操作,像是判斷是否登入失敗或是取得網頁中特定的資料。
文章內容僅提供技術分享,如有錯誤還請不吝指教。