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

相关文章
相关标签/搜索