C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
第一章介绍了如何打开网站,这一章介绍一下使用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 | 当数据源的全部有效数据读取完毕时 |
代码改变世界