본문 바로가기

C#의 속삭임

[C#][WebBrowser] WebBrowser 컨트롤러

* C#을 사용하여 WebBrowser를 컨트롤 해야 되는 일을 하게 되었다.

* 그래서 간단하게 사용 방법을 정리 해본다.




* new System.Windows.Forms.WebBrowser()의 생성. 드래그 드롭으로 생성한다..;;





* 사이트 이동.

webBrowser1.Navigate("https://192.168.10.200/");

- 위와 같이 하면은 이동이 된다. 




* 특정 엘리먼트를 호출하여 value값 셋팅(input). 자바스크립트와 참 많이 닮았다.

webBrowser1.Document.GetElementById("username").InnerText = "admin";

webBrowser1.Document.GetElementById("password").InnerText = "admin";

- javascript의 getElementById랑 똑같다~





* 특정 엘리먼를 호출하여 이벤트 호출하기.

webBrowser1.Document.GetElementById("login-btn").InvokeMember("click");


* 만약 ID가 없다면?? 가지고 있는 특정 값으로도 찾을수 있다.

//button 태그를 모두 찾아 낸다.

HtmlElementCollection elc2 = this.webBrowser1.Document.GetElementsByTagName("button");


                   //찾아낸 태그를 모두 스캔한다.

                    foreach (HtmlElement el2 in elc2)

                    {

                        

                       // Yes라는 글자를 값으로 가지고 있는 버튼을 찾아 클릭한다.

                        if (el2.InnerText.Equals("Yes"))

                        {

                            

                            el2.InvokeMember("Click");

                            break;

                        }

                    }





* 반대로 특정 엘리먼트가 특정 동작을 하거나 변화하거나 할때 이벤트가 발생 하도록 설정 해보자.

//모든 div를 찾는다.

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("div");


//모든 div를 스캔한다.

foreach (HtmlElement el in elc){


    // 모든 div 에 onpropertiychange event 등록

    el.AttachEventHandler("onpropertychange", delegate { dashBoardChangeCheck(el, EventArgs.Empty); });


}


private void dashBoardChangeCheck(object sender, EventArgs args) {

           //이벤트 처리 동작

        }




'C#의 속삭임' 카테고리의 다른 글

[C#][WPF] 첫시작.  (0) 2014.04.23
[C#][WPF]데이터 바인딩  (0) 2014.04.22
[C#][WPF][프레임워크][MVVM] MVVM Light  (0) 2014.04.17
[C#][패턴] MVVM  (0) 2014.04.16
[C#][AxWebBrowser] AxWebBrowser 컨트롤러  (0) 2014.04.08