操做IE主要使用两个Com Dll:html
一、Microsoft Internet Controlsc#
二、Microsoft HTML Object Library浏览器
使用Microsoft Internet Controls取得全部的已经打开的IE(以Tab计算)app
SHDocVw.ShellWindows IETabs = new SHDocVw.ShellWindows();dom
每一个一个Tab均可以操做,每一个Tab对应Com Object的SHDocVw.InternetExplorerspa
foreach (SHDocVw.InternetExplorer ieTab in IETabs)
{
}code
取得每一个Tab以后,就能够经过InternetExplorer的Document取得每一个页面的Domhtm
mshtml.HTMLDocument dom = ieTab.Document as mshtml.HTMLDocument;对象
取得Dom以后,基本上就已经取得了操做IE的全部权限了,能够继续使用HTML Object Library对页面进行操做blog
或者经过注册JavaScript,对页面进行操做:
mshtml.IHTMLScriptElement script = dom.createElement("script") as mshtml.IHTMLScriptElement; \\建立script标签
script.text = "$(\"[name='wd']\").val('刘德华');"; \\经过Jquery,对百度进行操做
mshtml.HTMLBody body = dom.body as mshtml.HTMLBody; \\取得body对象
body.appendChild((mshtml.IHTMLDOMNode)script); \\注册JavaScript
完整代码(循环全部ieTab,对百度页面操做...搜索刘德华):
SHDocVw.ShellWindows IETabs = new SHDocVw.ShellWindows(); foreach (SHDocVw.InternetExplorer ieTab in IETabs) { if (ieTab.LocationURL.Contains("www.baidu.com")) { mshtml.HTMLDocument doc = ieTab.Document as mshtml.HTMLDocument; mshtml.IHTMLScriptElement script = doc.createElement("script") as mshtml.IHTMLScriptElement; script.text = "$(\"[name='wd']\").val('刘德华');"; mshtml.HTMLBody body = doc.body as mshtml.HTMLBody; body.appendChild((mshtml.IHTMLDOMNode)script); } }
园里有其余更加详细的参考Blog:
c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2
我的建议:
基本接入IE,使用Com,而后其余业务操做,经过注入JavaScript进行操做