第一章介紹了如何打開網站,這一章介紹一下使用IHTMLDocument3完成登錄博客園,以下為代碼:
SHDocVw.InternetExplorer oBrowser = new SHDocVw.InternetExplorer(); object objFlags = 2; object objTargetFrameName = "_self"; object objPostData = ""; object objHeaders = ""; oBrowser.Visible = true; oBrowser.Navigate("https://passport.cnblogs.com/user/signin", ref objFlags, ref objTargetFrameName, ref objPostData, ref objHeaders); while (true) { Thread.Sleep(1000); if (oBrowser.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) break; } IHTMLDocument3 doc3 = (IHTMLDocument3)oBrowser.Document; IHTMLInputElement txtUserName = (IHTMLInputElement)doc3.getElementById("input1"); txtUserName.value = "你的用戶名"; IHTMLInputElement txtPassWord = (IHTMLInputElement)doc3.getElementById("input2"); txtPassWord.value = "你的密碼"; doc3.getElementById("signin").click();
使用以上代碼就成功登錄到博客園了,下面整理一下IHTMLDocument3以及相關的一些方法和屬性:
IHTMLDocument3 方法 | 說明 |
attachEvent | 從IE11開始,使用addEventListener。將指定的函數綁定到一個事件,以便每當事件在對象上觸發時,該函數被調用。 |
createDocumentFragment | 創建一個新文檔並返回一個指向新創建的文檔的指針。 |
createTextNode | 從指定的值創建一個文本字符串。 |
detachEvent | 從事件中取消綁定指定的功能,以使該功能在事件觸發時停止接收通知。 |
getElementById | 返回對具有指定值id屬性的第一個對象的引用。 |
getElementsByName | 根據name屬性的值獲取對象集合。 |
getElementsByTagName | 根據指定的元素名稱檢索對象的集合。 |
recalc | 此元素已過時,不再使用。重新計算當前文檔中的所有動態屬性。 |
releaseCapture | 從當前文檔中的對象中刪除鼠標捕獲。 |
IHTMLDocument3屬性與事件 | 說明 |
baseUrl | |
dir | 設置或檢索指示對象的讀取順序的值。 |
documentElement | 獲取對文檔根節點的引用。 |
enableDownload | 設置啟用下載 |
inheritStyleSheets | 暫未說明 |
onbeforeeditfocus | 設置焦點之前 |
oncellchange | 當數據來源發生變化時 |
oncontextmenu | 當按下鼠標右鍵出現菜單或通過鍵盤觸發頁面菜單時 |
onpropertychange | 改變屬性時 |
onrowsdelete | 當前數據記錄被刪除時 |
onrowsinserted | 當前數據源將要插入新數據時 |
uniqueID | 檢索對象的自動生成的唯一標識符。 |
onstop | 停止或離開時 |
ondatasetchanged | 數據源發生變化時 |
ondatasetcomplete | 當數據接收完成時 |
ondataavailable | 當數據源的全部有效數據讀取完畢時 |