[VB] Webbrowser et "Specified cast is not valid."
Bonjour,
J'ai un petit probleme avec une application winform que j essais de mettre au point.
le but est de mettre en place un webbrowser, dans l appli, et de récuperer certaines informations contenu dans l html.
( je precise que je ne souhaite pas injecter du js dans les pages, via invoke )
Donc l application, charge l url au demarage, une fois que celle ci est complete je met en place un timer afin de recuperer les infos ( timer car des requetes ajax décalle le chargement de certaines parties de l html ...)
en gros cela donne ca ( simplifié ... ) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
Public Class navigateur
Public journal As log = Nothing
Private time As System.Timers.Timer
Private Sub navigateur_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.journal = New log(Me.RichTextBox1)
journal.assert_debug("navigateur_Load")
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.ScriptErrorsSuppressed = False
journal.assert_debug("DocumentCompleted")
add_event_timer()
End Sub
Private Sub WebBrowser1_Navigating(sender As Object, e As WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
supp_event_timer()
journal.assert_debug("navigating")
End Sub
Protected Sub add_event_timer()
time = New System.Timers.Timer()
time.Interval = 500
time.Start()
AddHandler time.Elapsed, New System.Timers.ElapsedEventHandler(AddressOf analyse_page)
End Sub
Public Sub analyse_page()
If (WebBrowser1.Document IsNot Nothing) Then
Dim TableElem As HtmlElement = WebBrowser1.Document.GetElementById("contentWrapper")
RichTextBox1.Text = RichTextBox1.Text & TableElem.InnerHtml.ToString & vbCrLf
End If
End Sub |
cela me retourne un
Citation:
System.InvalidCastException was unhandled by user code
HResult=-2147467262
Message=Specified cast is not valid.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
at System.Windows.Forms.WebBrowser.get_Document()
at iextense.navigateur.analyse_page()
at iextense.navigateur._Lambda$__1(Object a0, ElapsedEventArgs a1)
at System.Timers.Timer.MyTimerCallback(Object state)
InnerException:
je precise que via un button ca fonctionne :
Code:
1 2 3 4 5 6 7
|
Private Sub TestToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TestToolStripMenuItem.Click
If (WebBrowser1.Document IsNot Nothing) Then
Dim TableElem As HtmlElement = Me.WebBrowser1.Document.GetElementById("contentWrapper")
RichTextBox1.Text = RichTextBox1.Text & TableElem.InnerText & vbCrLf
end if
End Sub |
voila, vous savez tout
visual basic 12
seven
.net 4
je pense que le webbrowser doit etre innacessible, ...
j ai testé plein de solution sans trouvé la bonne
avez vous des pistes de recherche ...