码迷,mamicode.com
首页 > Windows程序 > 详细

WPF的webBrowser控件关键代码

时间:2014-12-28 11:35:26      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

1、根据元素ID获取元素的值。

比如要获取<img class="" id="regimg" src="/register/checkregcode.html?1287068791" width="80" height="22">这个标签里的src属性的值:

mshtml.IHTMLDocument2 doc2 = (mshtml.IHTMLDocument2)webBrowser1.Document; mshtml.IHTMLElement img = (mshtml.IHTMLElement)doc2.all.item("regimg", 0);

string imgUrl = (string)img.getAttribute("src");

 

2、填写表单,并确定

mshtml.IHTMLElement loginname = (mshtml.IHTMLElement)doc2.all.item("loginname", 0);     mshtml.IHTMLElement loginPW = (mshtml.IHTMLElement)doc2.all.item("password", 0);     mshtml.IHTMLElement loginBT = (mshtml.IHTMLElement)doc2.all.item("formsubmit", 0);     mshtml.IHTMLElement loginYZ = (mshtml.IHTMLElement)doc2.all.item("regcode", 0);     loginname.setAttribute("value", tbLoginName.Text);
loginPW.setAttribute("value", tbLoginPassWord.Password); 
loginYZ.setAttribute("value", tbYZ.Text);    
loginBT.click(); 

3、获取源码

textBox1.Text = doc2.body.innerHTML;

4、执行JS

mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc2.parentWindow;
win.execScript("changeRegImg()", "javascript");//使用JS

 

5、禁止JS,WPF下目前发现唯一适用的一种方法:

public void HideScriptErrors(WebBrowser wb, bool Hide)   
{
    FieldInfo fiComWebBrowser = typeof(WebBrowser).GetField("_axIWebBrowser2", BindingFlags.Instance | BindingFlags.NonPublic);

    if (fiComWebBrowser == null) return;

    object objComWebBrowser = fiComWebBrowser.GetValue(wb);

    if (objComWebBrowser == null) return;

    objComWebBrowser.GetType().InvokeMember("Silent", BindingFlags.SetProperty, null,objComWebBrowser, new object[] { Hide });

}

   void webBrowser1_Navigated(object sender, NavigationEventArgs e)   
{

    HideScriptErrors(webBrowser1,  true);

}

WPF的webBrowser控件关键代码

标签:

原文地址:http://www.cnblogs.com/sekon/p/4189747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!