2014-02-17 49 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標籤存在,該代碼沒有工作,

我改線:

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

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

但它仍然沒有工作。請幫忙。自上週以來,我不能在這個問題

+0

什麼「不起作用」是什麼意思?任何錯誤信息? – Noseratio

+0

沒有給出錯誤,我意思是說,它不能設置屬性的輸入字段。但是我用Adam Valpied的回答解決了這個問題 –

+0

然後你應該打勾Adam的答案,這是他如何得到他的幫助。 – 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元素和至少一個輸入el在兒童文件中。

+0

感謝亞當,這工作得很好。你保存了我的項目 –