標籤:addition builder _id mem tostring rss 指令碼 fresh form表單
常用的方法
1 Navigate(string urlString):瀏覽urlString表示的網址 2 Navigate(System.Uri url):瀏覽url表示的網址 3 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 瀏覽urlString表示的網址,並發送postData中的訊息 4 //(通常我們登入一個網站的時候就會把使用者名稱和密碼作為postData發送出去) 5 GoBack():後退 6 GoForward():前進 7 Refresh():重新整理 8 Stop():停止 9 GoHome():瀏覽首頁10 WebBrowser控制項的常用屬性:11 Document:擷取當前正在瀏覽的文檔12 DocumentTitle:擷取當前正在瀏覽的網頁標題13 StatusText:擷取目前狀態欄的文本14 Url:擷取當前正在瀏覽的網址的Uri15 ReadyState:擷取瀏覽的狀態16 WebBrowser控制項的常用事件:17 DocumentTitleChanged,18 CanGoBackChanged,19 CanGoForwardChanged,20 DocumentTitleChanged,21 ProgressChanged,22 ProgressChanged23 DocumentCompleted 頁面載入完成之後的事件
擷取非input控制項的值
1 webBrowser1.Document.All["控制項ID"].InnerText;2 或webBrowser1.Document.GetElementById("控制項ID").InnerText;3 或webBrowser1.Document.GetElementById("控制項ID").GetAttribute("value");
屏蔽指令碼錯誤:
將WebBrowser控制項ScriptErrorsSuppressed設定為True即可
擷取元素、表單
1 //根據Name擷取元素 2 public HtmlElement GetElement_Name(WebBrowser wb,string Name) 3 { 4 HtmlElement e = wb.Document.All[Name]; 5 return e; 6 } 7 8 //根據Id擷取元素 9 public HtmlElement GetElement_Id(WebBrowser wb, string id)10 {11 HtmlElement e = wb.Document.GetElementById(id);12 return e;13 }14 15 //根據Index擷取元素16 public HtmlElement GetElement_Index(WebBrowser wb,int index)17 {18 HtmlElement e = wb.Document.All[index];19 return e;20 }21 22 //擷取form表單名name,返回表單23 public HtmlElement GetElement_Form(WebBrowser wb,string form_name)24 {25 HtmlElement e = wb.Document.Forms[form_name];26 return e;27 }28 29 30 //設定元素value屬性的值31 public void Write_value(HtmlElement e,string value)32 {33 e.SetAttribute("value", value);34 }35 36 //執行元素的方法,如:click,submit(需Form表單名)等37 public void Btn_click(HtmlElement e,string s)38 {39 40 e.InvokeMember(s);41 }
1 [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 2 static extern bool InternetGetCookieEx(string pchUrl, string pchCookieName, StringBuilder pchCookieData, ref System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved); 3 private static string GetCookieString(string url) 4 { 5 uint datasize = 1024; 6 StringBuilder cookieData = new StringBuilder((int)datasize); 7 if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x2000, IntPtr.Zero)) 8 { 9 if (datasize < 0)10 return null;11 cookieData = new StringBuilder((int)datasize);12 if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, IntPtr.Zero))13 return null;14 }15 return cookieData.ToString();16 }17 private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)18 {19 richTextBox1.Text = string.Empty;20 if (cbcookie.Checked)21 {22 if (checkBox1.Checked)23 {24 richTextBox1.Text = GetCookieString(textBox1.Text.Trim());25 }26 else27 {28 richTextBox1.Text = webBrowser1.Document.Cookie;29 }30 }31 }32
C#WebBrowser控制項使用教程與技巧收集