2014-03-19 177 views
0

我有一個網站上的一個文本框驗證碼:如何在webkitbrowser中填充文本框?

<textarea class="chat_input"> 

    Enter text for chat here 

</textarea> 

我所要做的,就是把文本到它。在一個不同的問題,一個人展示瞭如何點擊一個鏈接,這是這個代碼的類:

foreach (Node el in webKitBrowser1.Document.GetElementsByTagName("a")) 
{ 
    if (((Element) el).GetAttribute("id") == "lnkId") 
    { 
     string urlString = ((Element) el).Attributes["href"].NodeValue; 
     webKitBrowser1.Navigate(urlString); 
    } 
} 

我試圖適應它這個代碼在這裏:

message = txtMessage.Text; 
foreach(Node txt in wb.Document.GetElementsByTagName("textarea")) 
{ 
    if(((Element)txt).GetAttribute("Class") == "chat_input") 
    { 
     ((Element)txt).SetAttribute("Value", message); 
    } 
} 

當我調試它,它通過代碼5次,這就是有多少個textarea。有誰知道爲什麼它不填寫textbox

+0

已經回答了這裏; http://stackoverflow.com/questions/580052/set-value-of-a-textarea-inside-a-webbrowser-control-c-net – Anwarrex

+0

'.InnerText'不適用於'節點' – Dozer789

回答

1

您不需要使用SetAttribute,而是設置TextContent屬性。

所以:

if(((Element)txt).GetAttribute("Class") == "chat_input") 
{ 
     ((Element)txt).TextContent = message; 
} 
+0

這樣做不工作...它給了我這個錯誤: – Dozer789

+0

''WebKit.DOM.Element'沒有包含'InnerText'的定義,也沒有接受'WebKit.DOM.Element'類型的第一個參數的擴展方法'InnerText'可以被發現(你是否缺少使用指令或程序集引用?) ' – Dozer789

+0

道歉,請嘗試TextContent。 –