操做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進行操做