2014-02-17 5 views
0

일반적으로 html 태그에 액세스 할 수 있으며 코드를 통해 값을 설정할 수 있습니다. IFrame 및 SetAttribute 값의 액세스

HtmlElementCollection coll = webBrowser1.Document.GetElementsByTagName("input"); 
foreach (HtmlElement curElement in coll) 
{ 
    if (curElement.GetAttribute("name").ToString() == "login") 
    { 
    curElement.SetAttribute("Value", "123456789"); 
    } 
} 

그러나 HTML 입력 영역은 iframe 태그에 존재하는 경우,이 코드 didnt 한 작업

,

그리고 변화 라인 :

var coll = webBrowser1.Document.GetElementsByTagName("input"); 

var coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("iframe") 

하지만 여전히

에 didnt는 일한다. 도와주세요. 내가 지난 주부터이 문제를 극복 할 수

+0

"작동하지 않는"것은 무엇을 의미합니까? 오류 정보가 있습니까? – Noseratio

+0

제공 오류가 없습니다. 입력 필드의 속성을 설정할 수 없습니다. 하지만 아담 밸피 드 (Adam Valpied)의 대답으로 문제를 풀었습니다. –

+0

그러면 아담의 대답을 받아 들여야합니다. 이것이 그의 도움을 얻는 방법입니다. – Noseratio

답변

0

이 라인을 변경하는 경우가 작동해야처럼 코드는 같습니다

coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("iframe") 

여기

coll = webBrowser1.Document.Window.Frames[0].Document.GetElementsByTagName("input"); 

작업 예입니다

에를 ...

HtmlWindow iframe = webBrowser1.Document.Window.Frames[0]; 
HtmlElement input = iframe.Document.GetElementsByTagName("input")[0]; 

input.SetAttribute("value", "Test"); 

여기에는 분명히 적어도 하나의 iframe 요소와 하나 이상의 입력 요소 만 있다고 가정합니다. 자식 문서에 있어야한다.

+0

고마워, 아담, 정말 잘 작동 해. 내 프로젝트를 저장했습니다. –