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("https://passport.cnblogs.com/user/signin", 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以及用法.

posted @ 2019-09-10 13:59  左正  阅读(681)  评论(0编辑  收藏  举报