티스토리 뷰

Knowledge

C#(씨샾) WebBrower(웹브라우저)

메디츠 2024. 1. 7. 10:52
반응형

10년 1월 기준.

 

webBrower.Navigate(url);

// url페이지로 이동

 

private void webBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e);

웹페이지 로딩 완료후 실행되는 함수.

웹문서내의 프레임수만큼 호출되기 때문에 다음과 같이 작업을 해야 한다.

 

private void webBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

if (e.Url.AbsoluteUri == webBrowser1.Url.AbsoluteUri)

// if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete)

{

// 작업 실행

}

}

문서내의 태그 파싱

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

// 문서가 정상적으로 로드 완료 되었을 경우만 실행

if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete)

{

// body 태그 이하 모든 요소들 추출

foreach (HtmlElement elements in this.webBrowser1.Document.Body.Children)

{

// 각 부모요소안의 모든 요소를 추출

foreach (HtmlElement element in elements.All)

{

// 특정 태그 목록 추출

switch (element.TagName)

{

case "IMG":

// 이미지 경로 출력

MessageBox.Show(element.GetAttribute("SRC"));

break;

case "A":

// 링크 경로 출력

MessageBox.Show(element.GetAttribute("HREF"));

break;

}

}

}

}

}

 

// 링크 값

foreach (HtmlElement el in webBrowser1.Document.Links)

{

string href = el.GetAttribute("href");

}

// 엘리멘트 파싱

HtmlElement el = webBrowser1.Document.All["id"];

string data = el.InnerText

 

// 엘리먼트 변경

HtmlElement el = webBrowser1.Document.All["id"];

el.SetAttribute("value", "1");

// 버튼 클릭

HtmlElement el = webBrowser1.Document.All["id"];

object obj = el.DomElement;

System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");

mi.Invoke(obj, new object[0]);

// web submit실행

foreach (HtmlElement tt in webBrowser1.Document.All)

{

if (tt.TagName == "FORM")

{

textBox1.Text += tt.Id + Environment.NewLine;

if (tt.Id.ToUpper().IndexOf("LOGIN") >= 0)

{

tt.All.GetElementsByName("id")[0].SetAttribute("value", "바보");

tt.All.GetElementsByName("pw")[0].SetAttribute("value", "123");

tt.All.GetElementsByName("enpw")[0].SetAttribute("value", "123");

tt.InvokeMember("submit");

break;

}

}

}

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함