* 생성
- 도구>도구 상자 항목 선택 > COM 구성 요소 에서 Microsoft Web Browser를 선택 하여 추가한다.
* document 불러 오기.
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webBrowser1.Document;
* inputbox에 값 넣고, 버튼 클릭하기 ex) 로그인
mshtml.IHTMLDocument3 doc = this.webBrowser1.Document as mshtml.IHTMLDocument3;
doc.getElementById("u").innerText = "admin";
doc.getElementById("p").innerText = "admin";
doc.getElementById("login-btn").click();
* 엘레먼트를 호출하여 특정 엘레멘트 선별하기.
mshtml.IHTMLDocument3 doc = this.webBrowser1.Document as mshtml.IHTMLDocument3;
//button Tag를 모두 호출한다.
mshtml.IHTMLElementCollection elc = doc.getElementsByTagName("button");
//for문으로 선별한다.
foreach (mshtml.IHTMLElement el in elc)
{
//버튼 텍스트가 WorkOn인 녀석을 찾는다.
if (el.innerText.Equals("Work On"))
{
//해당 버튼을 클릭한다.
el.click();
}
}
* 특정 엘레먼트에 이벤트를 걸 필요가 있을때가 있다. 예를 들어 특정 엘레멘트의 속성 변화 이벤트가 발생하면 C#에 알려주어 특정 메소드를 실행 하도록...
mshtml.IHTMLDocument3 doc = this.webBrowser1.Document as mshtml.IHTMLDocument3;
mshtml.IHTMLElementCollection elc = doc.getElementsByTagName("div");
foreach (mshtml.IHTMLElement el in elc)
{// 모든 div 에 onpropertiychange event 등록
mshtml.HTMLElementEvents_Event elEvent;
elEvent = (mshtml.HTMLElementEvents_Event)el;
elEvent.onpropertychange += new mshtml.HTMLElementEvents_onpropertychangeEventHandler(delegate { dashBoardChangeCheck(el); });
}
private void dashBoardChangeCheck(object sender)
{
mshtml.IHTMLElement element = (mshtml.IHTMLElement)sender;
}
* AxWebBrowser의 특징중 하나가 팝업 관리가 가능하다. 팝업 발생시 특정 폼에 AxWebBrowser를 넘겨 줄수 있다.
- 브라우저의 NewWindow이벤트에 정의 해준다. 이대 새로 생성되는 Form은 CreateVMForm 이다. 입맛대로 고쳐 쓰면 된다.
private void webBrowser1_NewWindow(object sender, DWebBrowserEvents2_NewWindow2Event e)
{
AxWebBrowser newWebBrowser = (AxWebBrowser)sender;
Console.Write("Call webBrowser1_NewWindow URL : " + newWebBrowser.LocationURL);
CreateVMForm createVMForm;
createVMForm = new CreateVMForm();
createVMForm.Visible = true;
createVMForm.axWebBrowser1.RegisterAsBrowser = true;
e.ppDisp = createVMForm.axWebBrowser1.Application;
}
* 만약 브라우저 에러를 사용자에게 숨기고 싶다면...
webBrowser1.Silent = true;
* AxWebBrowser가 있고 그냥 WebBrowser 가 있다.
WebBrowser의 자료는 이곳이다. : http://hongal.tistory.com/68
'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#][WebBrowser] WebBrowser 컨트롤러 (0) | 2014.04.04 |