2016-12-25 109 views
0

我試圖在Web瀏覽器中以編程方式將值設置爲文本框,但它引發了Null異常。無法在WebBrowser中以編程方式將值設置爲textBox控件

這是代碼,我曾嘗試: -

webBrowser1.Document.GetElementById( 「場摘要」)的innerText = 「東西」。

webBrowser1.Document.GetElementById( 「場摘要」)的setAttribute( 「值」, 「東西」);

我試圖通過快速觀察找出元素,它是存在的,但我不能設置一個值。

在此,我也附上手錶的卡扣。

enter image description here

這是錯誤,我得到。

型「System.NullReferenceException」的第一次機會異常出現在TimeSheet.exe 型「System.Reflection.TargetInvocationException」的第一次機會異常出現在mscorlib.dll

我的問題是我想設置一個值爲無限制文本,我沒有對InnerText進行任何操作。但仍然是拋出錯誤。

我已經嘗試了InnerText,值也是。但仍然無法。

我也附上了snap,使用Inspect作爲參考。

enter image description here

PS: 1.所有這些代碼集是在web瀏覽器的DocumentCompleted事件做了,但仍無法.. 2.我已經在其他一些網頁訪問的其它元素(文本),並使用InnerText用於訪問併爲其設置值。但無法處理這個元素。

可能有人扔在它爲什麼這樣做一盞燈,這樣我就可以看得懂它。

謝謝。

+0

也許你試圖在元素加載到文檔之前設置元素的值,例如在表單的加載事件中。你應該在'WebBrowser' conrtol的'DocumentCompleted'事件中找到元素。 –

+0

@ RezaAghaei:嗨,謝謝你的回覆。我只在DocumentCompleted Event中這樣做..是否還有其他與此相關的問題..? – NANDAKUMAR

+0

也許是的,例如,當您的元素使用ajax請求加載或使用像angular這樣的客戶端框架實時創建時。 –

回答

0

可能是您的元素尚未加載。 在窗口加載事件處理程序中執行此操作。 你可以使用Jquery事件。

0

找到了我的問題從SO的工作解決方案。

How to get HTML textbox value?

所以,下面的代碼爲我工作。

動態elePrice = webBrowser.Document.GetElementById( 「價格」)一個DOMElement。 string sValue = elePrice.value;

謝謝。

相關問題