2013-12-09 5 views
1

Может кто-нибудь мне помочь? Я новичок в VB.net и стараюсь писать очень простой код для управления сайтом. Тем не менее, я продолжаю получатьVB.net InternetExplorer HtmlDocument

«Необработанное исключение типа„System.InvalidCastException“произошло в Defer All.exe .... Не удается привести COM-объект типа „System .__ ComObject“для взаимодействия типа" mshtml.HTMLDocument '. Эта операция завершилась неудачно, потому что вызов QueryInterface для COM-компонента для интерфейса с IID' ....). "

 Dim IE As InternetExplorer 
     Dim HTMLDoc As HtmlDocument 
     Dim oHTML_Element As mshtml.IHTMLElement 
     IE = new InternetExplorer 
     IE.Navigate("http://www.mediafire.com/") 
     Do Until IE.ReadyState = 4 
     Loop 
     Loop Until Not IE.Busy 
     ' ERROR on the following line 
     HTMLDoc = IE.Document 
     ' I tried making HTMLDoc as object. It passed the above line, but failed the next line due to no GetElementsByTagName method 
     For Each oHTML_Element In HTMLDoc.GetElementsByTagName("input") 
      '.................... 
     Next 
+1

Вы должны ждать браузера, чтобы фактически перейти на страницу. До тех пор свойство Document, вероятно, является нулевым или каким-либо другим неопределенным. –

+0

Вы хотите обработать событие DocumentCompleted. –

+0

Спасибо Dan-o. Извините, я редактировал свой пост. Я подождал, пока все будет сделано. Кажется, что IE.Document - это com.object и не может быть отправлен в HTMLDocument. Я понятия не имею, почему это не работает. Он работает в VBA. – user3081546

ответ

1

изменение ...

Dim IE As InternetExplorer 
Dim HTMLDoc As HtmlDocument 
'     ^---------------------------this thing to, 
               mshtml.IHTMLDocument 
Dim oHTML_Element As mshtml.IHTMLElement 
+0

что я могу сказать ... глупо мне: P – user3081546

Смежные вопросы