C#操做IE

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

C#操做IE瀏覽器

 

我的建議:

基本接入IE,使用Com,而後其餘業務操做,經過注入JavaScript進行操做

相關文章
相關標籤/搜索