0

Я пытаюсь установить значение программно в текстовое поле в веб-браузере, но оно выбрасывает исключение Null.Невозможно установить значение для управления текстовым полем программно в WebBrowser

Это код, я попробовал: -

webBrowser1.Document.GetElementById ("поле-резюме") InnerText = "Что-то";.

webBrowser1.Document.GetElementById («полевая сводка»). SetAttribute («значение», «что-то»);

Я попытался найти элемент с помощью Quick Watch, и он есть, но я не могу установить значение.

Настоящим я также привязал часы.

enter image description here

И это ошибка, я получаю.

Первый шанс исключение типа «System.NullReferenceException» произошло в TimeSheet.exe Первый шанс исключение типа «System.Reflection.TargetInvocationException» произошло в mscorlib.dll

Мой вопрос я пытаюсь задайте значение для внутреннего текста, и я не делаю никаких манипуляций с InnerText. Но все же это ошибка.

Я пробовал как InnerText, так и значение. Но все еще неспособен.

Я также привязал оснастку, используя Inspect для справки.

enter image description here

PS: 1. Все эти кодовый набор выполняются в DocumentCompleted Событие WebBrowser, но до сих пор не .. 2. Я доступны другие элементы (текст) в некоторых других страниц и используется InnerText для доступа и установки для него значения. Но неспособность сделать этот элемент.

Может ли кто-нибудь рассказать, почему это так, поэтому я могу это понять.

Спасибо.

+0

Возможно, вы попытаетесь установить значение для элемента до того, как элемент получил нагрузку в документе, например, в событии загрузки формы. Вы должны найти элемент в 'DocumentCompleted' событии' WebBrowser' conrtol. –

+0

@RezaAghaei: Привет, спасибо за ответ.Я делаю это только в DocumentCompleted Event. Есть ли какая-то другая проблема, связанная с этим.? – NANDAKUMAR

+0

Возможно, да, например, когда ваши элементы загружаются с использованием запроса ajax или создаются «на лету» с использованием клиентской структуры, такой как угловой. –

ответ

0

Возможно, ваши элементы еще не загружены. Сделайте это действие в обработчике событий загрузки окна. Вы можете использовать события Jquery.

0

Нашел рабочее решение для моей проблемы из SO ,.

How to get HTML textbox value?

Итак, следующий код работает для меня.

динамический elePrice = webBrowser.Document.GetElementById ("цена"). DomElement; string sValue = elePrice.value;

Спасибо.