Мое требование - я открываю экземпляр Internet Explorer программно. Затем я получаю HTMLDocument и ищу поле ввода (текстовое поле), а затем устанавливаю его значение.
HTMLDocument oDoc = new mshtml.HTMLDocumentClass();
oDoc = (HTMLDocument)oBrowser.Document;
HTMLInputElement txtbox1 = (HTMLInputElement)oDoc.all.item("login",0);
txtbox1.setAttribute("value", "test_user_name", 0);
//txtbox1.value = "test_user_name";
Мой код работает нормально, пока не будет найдено поле ввода. Проблема где-то в коде, который я разместил выше. Я получаю объект HTMLDocument, затем ищу HTMLInputElement с именем «логин». Здесь я сталкиваюсь с несоответствием - текстовое поле иногда не распознается, поэтому, когда оно достигает значения txtbox1.SetAttribute
или txtbox1.value
, выдается NullReferenceException
. Но так бывает не всегда. Иногда исключение не выдается, и код работает просто отлично.
Я пытался отладить код, но ошибка никогда не появляется, когда я отлаживаю код !!
Я не могу выяснить, в чем причина? Что вызывает это несоответствие? Есть идеи?