天天看点

C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录

第一章介绍了如何打开网站,这一章介绍一下使用IHTMLDocument3完成登录博客园,以下为代码:

  1. SHDocVw.InternetExplorer oBrowser = new SHDocVw.InternetExplorer();
  2. ;
  3. object objTargetFrameName = "_self";
  4. object objPostData = "";
  5. object objHeaders = "";
  6. oBrowser.Visible = true;
  7. oBrowser.Navigate("", ref objFlags, ref objTargetFrameName, ref objPostData, ref objHeaders);
  8. while (true)
  9. {
  10. Thread.Sleep();
  11. if (oBrowser.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
  12. break;
  13. }
  14. IHTMLDocument3 doc3 = (IHTMLDocument3)oBrowser.Document;
  15. IHTMLInputElement txtUserName = (IHTMLInputElement)doc3.getElementById("input1");
  16. txtUserName.value = "你的用户名";
  17. IHTMLInputElement txtPassWord = (IHTMLInputElement)doc3.getElementById("input2");
  18. txtPassWord.value = "你的密码";
  19. 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 当数据源的全部有效数据读取完毕时

这一章介绍了IHTMLDocument3,并且使用IHTMLDocument3完成了登录,下一章介绍IHTMLDocument2以及用法.

下一篇: 两类错误