2014-03-01 4 views
-1

페이지가 있습니다. 입력 영역을 읽고 C#의 GetAttribute 및 SetAttribute를 사용하여 해당 값을 변경하는 본문을 가져오고 싶습니다. 이것은 내가 통해 몸을 호출 할 때,WebBrowser document.body.InnerHtml 빈 페이지가 반환됩니까?

아무것도 반환 (내가 빈 문자열을 의미)가, 그것을 할 만 할 문제가되지 않습니다 :

webBrowser1.Document.Body.InnerText 

하거나,

webBrowser1.Document.Body.InnerHtml 

그 이유는 내가 입력 필드에 액세스 할 수 없습니다. 웹 브라우저 구성 요소에서 웹 페이지가 표시되지만 InnerText 또는 InnerHtml이 반환되지 않습니다. 현지에서 운영되는 저축 은행입니다.

그래서 본체, SetAttribute 또는 GetAttribute 또는 InvokeMember를 실행하려면 어떻게해야합니까?

+2

페이지가 완전히로드 될 때까지 기다리십니까? http://stackoverflow.com/questions/20957182/load-url-from-txt-file-and-load-the-url-in-browser-synchronous-webclient-httpreq –

+0

언제 webBrowser1.Document.Body를 호출합니까? InnerText. 웹 브라우저 컨트롤에서 페이지를로드 한 직후? – Nps

+0

예, 완전히로드되었습니다. 어떻게 알지는 못했지만 문제는 해결되었습니다. Perhabs 나는 뭔가를 놓쳤다. 나는 프레임 태그 만 얻는다. 그런 다음 코드별로 각 프레임에 액세스하려고 시도했습니다. webBrowser1.Document.Window.Frames [i] .Document.Body.InnerHtml 그리고 그 코드는 –

답변

-2

당신은 얻거나 텍스트를 설정 한 후 입력 요소를 얻을 필요가 :

HtmlElementCollection elements = currentBrowser.Document.GetElementsByTagName("INPUT"); 
    foreach (HtmlElement element in elements) 
     { 
      //to get the text use : string value = element.GetAttribute("value"); 
      //to set the text use : elemet.InnerText = "something"; 

     } 

을하지만, 특정 요소 당신을 위해 검색, 코드에 의해 모든 입력 요소를 얻을 수 이상 잊지 마세요 웹 페이지와 마찬가지로 ID 또는 이름을 확인할 수 있습니다. 예 :

if (element.Name.ToLower().Contains("email")) 
     //do work 
+0

입니다. @AliCAKIL, 호기심에서이 대답으로 어떻게 문제가 해결 되었습니까? –