none
如何用WPF的 WebBrowser 去解析網站的 html?? RRS feed

  • 問題

  •    wb.Url = new Uri(websouce);
                        host.Child = wb;
                        webguid.MouseWheel += new MouseWheelEventHandler(webguid_MouseWheel);
                        webguid.Children.Add(host);
                        do
                        {
                            System.Windows.Forms.Application.DoEvents();
                        }
                        while ((wb.IsBusy) || (wb.ReadyState != WebBrowserReadyState.Complete));
                        wb.Document.GetElementById("txtAccount").InnerText = ln;
                        wb.Document.GetElementById("txtPassword").InnerText = lp;
                        wb.Document.GetElementById("btnLogin").InvokeMember("Click");

    這是小弟目前的作法

    請問WPF 一定得要這樣做才能去解析HTML嗎?

    小弟是想做一WPF的鍵盤, 去輸入文字到Web裡面的 textbox裡面

    想請問還有其他更適合的做法嗎?

    感謝解答

    2011年3月31日 上午 03:39

解答

所有回覆

  • 是的,沒錯.
    要控制WebBrowser頁面的HTML Control必須用此方式,但這不算是解析HTML.因為還是透過WebBrowser的WebDocument物件.

    2011年3月31日 上午 03:56
  • 也有人另外製作類別來處理相關的工作, 例如:Working with WebBrowser in WPF
    2011年3月31日 上午 04:27
  • 再請問一下

    小弟我現在自訂了一個鍵盤控制項(因為因要一些特殊符號與熱鍵)

    所以打得字需要填到WebBrowser 上

    我現在的做法是照上面先知道該網頁textbox 的名字, 例如google 的是 "q"

                        wb.Document.GetElementById("q").InnerText = str;

    但是有些網頁會有帳號與密碼或是之類的兩個textbox

    那我要怎樣切換得知兩個textbox的focus ?

    感謝解答

    2011年4月8日 上午 11:05
  • var txtBox=document.getElementById("textbox的id" );
    if (txtBox!=null ) 

    txtBox.focus();

    2011年4月8日 下午 12:01