首先要引入Microsoft.mshtml.dll 地址是C:\ProgramFiles\Microsoft.NET\Primary Interop Assemblies 1、根据元素ID获取元素的值。 比如要获取 img class= id= regimg src= /register/checkregcode.html?1287068791 width= 80 height= 22 这个标签里的src属性的值: mshtml.IHTMLDocument2doc2=(mshtml.IHTMLDocume
首先要引入Microsoft.mshtml.dll 地址是C:\ProgramFiles\Microsoft.NET\Primary Interop Assemblies
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");
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();
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)
{
FieldInfofiComWebBrowser = typeof(WebBrowser).GetField( "_axIWebBrowser2",BindingFlags.Instance | BindingFlags.NonPublic);
if(fiComWebBrowser == null) return;
objectobjComWebBrowser = fiComWebBrowser.GetValue(wb);
if(objComWebBrowser == null) return;
objComWebBrowser.GetType().InvokeMember(
"Silent",BindingFlags.SetProperty, null, objComWebBrowser, new object[] {Hide });
}
voidwebBrowser1_Navigated( object sender, NavigationEventArgs e)
{
HideScriptErrors(webBrowser1,
true);
}
{
FieldInfofiComWebBrowser = typeof(WebBrowser).GetField( "_axIWebBrowser2",BindingFlags.Instance | BindingFlags.NonPublic);
if(fiComWebBrowser == null) return;
objectobjComWebBrowser = fiComWebBrowser.GetValue(wb);
if(objComWebBrowser == null) return;
objComWebBrowser.GetType().InvokeMember(
"Silent",BindingFlags.SetProperty, null, objComWebBrowser, new object[] {Hide });
}
voidwebBrowser1_Navigated( object sender, NavigationEventArgs e)
{
HideScriptErrors(webBrowser1,
true);
}
本文来自a8878855的博客,原文地址:http://hi.baidu.com/ltsakhkqttsvxze/item/83ea1cee2f4a2d2e5b7cfbf4