全篇引用單元mshtml;
路徑:C:\windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll //不同的版本路徑不同
一、如何用Webbrowser獲取網頁的全部源代碼
1.不含框架
string s= WB1.DocumentText;
2.含有框架
IHTMLDocument2 doc=WB1.Document.DomDocument as IHTMLDocument2;
IHTMLFramesCollection2 frames=doc.frames as IHTMLFramesCollection2;
int i_frame=0; //第1個框架
IHTMLWindow2 frame=frames.item(ref i_frame) as IHTMLWindow2;
IHTMLDocument2 doc2=frame.document as IHTMLDocument2;
IHTMLDocument3 doc3=frame.document as IHTMLDocument3;
strings = doc2.body.innerHTML;
二、webbrowser如何獲取網頁的元素
1.根據元素ID
HtmlElement ele= WB1.Document.GetElementById("ID");
2.根據元素Name
HtmlElement ele= WB1.Document.All["Name"];
3.無ID無Name的元素
3.1 webbrowser遍歷網頁元素:
HtmlDocument doc=WB1.Document;
HtmlElementCollection elements=doc.All;
foreach(HtmlElement element in elements)
{
if (element.GetAttribute("innerText") == "提交回答") //元素的innnerText屬性為“提交回答”
{
element.InvokeMember("Click"); //模擬點擊
break;
}
}
3.2 webbrowser 根據元素的Tag遍歷(input,a,img,span,li,div等)
input: 所有可輸入的類型,例如文本框、勾選框、復選框、下拉列表、圖片等
a: A標簽,可以帶超鏈接
img: 圖片類型
span: SPAN類型
li: 下拉列表,列表框等
div: DIV
HtmlElementCollection eles = WB1.Document.GetElementsByTagName("a") as HtmlElementCollection;
foreach (HtmlElement ele in eles)
{
if (ele.GetAttribute("href") != null)
if (ele.GetAttribute("href") == "A標簽的超鏈接")
{
element.InvokeMember("Click"); //模擬點擊
break;
}
}
3.3 根據元素的索引序號
HtmlElement ele=WB1.Document.All[0]; //第1個元素
HtmlElement ele= WB1.Document.GetElementsByTagName("input")[0]; //第一個inuput類型的元素
3.4 根據已知元素獲取未知元素