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 | 当数据源的全部有效数据读取完毕时 |
代码改变世界

浙公网安备 33010602011771号