日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟操作网页 webBrowser

發布時間:2024/9/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟操作网页 webBrowser 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C# 獲取IFrame中body元素 (winform)

方法1.

找出iframe的b.html的src , 利用webbrowser去加載b.html


HtmlElementCollection a = webBrowser1.Document.All["loginframe"].GetElementsByTagName("iframe");
foreach (HtmlElement kk in a)
? {
???? textBox1.Text = kk.GetAttribute("src");
}
或者

webBrowser1.Document.GetElementById("iframe的id").GetAttribute("src");

webBrowser1.Navigate("src");

方法2.

使用 frame的 document

webBrowser1.Document.Window.Frames["login_ifr"].Document;

方法只是拋磚引玉,大家自己去專研去把? 轉自:http://hi.baidu.com/dingding3224/item/8060946dac3de5166895e6d4

HtmlDocument doc = webBrowser1.Document.Window.Frames["centerframe"].Document;doc.GetElementById("code").InnerText = "361100210009480";HtmlElement he = null;he = doc.GetElementById("btnSearch");he.InvokeMember("Click");

?在使用Webbrowser時,經常會遇到網頁沒有加載完成就進一步進行操作,這樣不但取不到控件或數據,而且會報錯,這里在網上找兩個一個函數,對Webbrowser加載進行等待,加載好后再進行處理:

private void Delay(int Millisecond) //延遲系統時間,但系統又能同時能執行其它任務;{DateTime current = DateTime.Now;while (current.AddMilliseconds(Millisecond) > DateTime.Now){Application.DoEvents();//轉讓控制權 }return;}private bool WaitWebPageLoad(WebBrowser WEB){int i = 0;string sUrl;while (true){Delay(500); //系統延遲50毫秒,夠少了吧! if (WEB.ReadyState == WebBrowserReadyState.Complete) //先判斷是否發生完成事件。{if (!WEB.IsBusy) //再判斷是瀏覽器是否繁忙 {i = i + 1;if (i == 2) //為什么 是2呢?因為每次加載frame完成時就會置IsBusy為false,未完成就就置IsBusy為false,你想一想,加載一次,然后再一次,再一次...... 最后一次.......{sUrl = WEB.Url.ToString();if (sUrl.Contains("res")) //這是判斷沒有網絡的情況下 {return false;}else{return true;}}continue;}i = 0;}}}

下面是處理網頁元素的代碼示例:

private void GetSearchPage(){try{WebBrowser mainwb = new WebBrowser();Navigate(mainwb, strAddress);//加載完后獲取查詢頁WaitWebPageLoad(mainwb);HtmlDocument doc = mainwb.Document;HtmlElement he = null;he = doc.GetElementById("da");he.InvokeMember("Click");//輸入數據進行查詢WaitWebPageLoad(mainwb);HtmlDocument doc3 = mainwb.Document.Window.Frames["centerframe"].Document;doc3.GetElementById("code").InnerText = "361100210009480";//doc.GetElementById("j_password").InnerText = textBox2.Text;//doc.GetElementById("j_captcha").InnerText = textBox3.Text;HtmlElement he3 = null;he3 = doc3.GetElementById("btnSearch");he3.InvokeMember("Click");//獲取查詢出來的超鏈接WaitWebPageLoad(mainwb);HtmlDocument doc1 = mainwb.Document.Window.Frames["centerframe"].Document;HtmlElementCollection hec = doc1.GetElementsByTagName("TD");ArrayList arrHref = new ArrayList();arrHref.Clear();//string a = "";for (int i = 0; i < hec.Count; i++){if (hec[i].InnerHtml != null){//hec[i].InvokeMember("Click");if (hec[i].InnerHtml.ToString().Contains("href")){string href = hec[i].InnerHtml.ToString();arrHref.Add(href.Substring(href.IndexOf("href") + 6, href.LastIndexOf("\">") - 6 - href.IndexOf("href")));}}}foreach (string href in arrHref){WebBrowser Datawb = new WebBrowser();Navigate(Datawb, strAddress + href);WaitWebPageLoad(Datawb);HtmlDocument doca = null;doca = Datawb.Document;string b = doca.GetElementById("txtITEMcode").InnerText;arrReturn.Add(b);//GetOneRecord();//webBrowser2.Navigate(Str_Websit);//Datawb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(GetOneRecord);}}catch (Exception ex){MessageBox.Show(ex.ToString());}} 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的模拟操作网页 webBrowser的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。