タイトル : VB WebBrowserでページの切り替えが思うように出来ない 投稿日 : 2015/08/14(Fri) 15:11 投稿者 : まつ
いつもお世話になっております。 VB2015を使用しています。 WebBrowserでWebページを切り替えながらHTMLを取得するコードを 作成しています。 下記コードのようにループでページを切り替える方法がうまく いきません。 ページを切り替えるごとにHTMLを取得したいのですが, Button1.Clickイベントが終わらないと全てのHTMLを取得出来ません。 なぜかNavigateの後にMsgBoxを入れるとその時点でページが変わり HTMLを取得出来ます(MessageBox.Showでも可能)。 MsgBoxに似たイベントを発生させてページを自動的に切り替える方法 は無いでしょうか? なお,EventArgsで空のイベントを発生させてみましたがダメでした。 仕方が無いので現状では順次タイマーイベントを発生させて都度HTML を取得する方法で目的を達成していますがコードが煩雑のため単純 ループのような簡単な方法に変更したいです。 他,New WebBrowser で都度インスタンスを生成,Disposeする方法 があると思いますがログインしてセッションを保ったままページを 切り替えたいため,この方法は使えません。 Public Class Form1 Private Sub Button1_Click(sender …) Handles Button1.Click Dim myUrl As String = Nothing For i As Integer = 1 To 2 If i = 1 Then myUrl = " ttp://….co.jp/1.html" If i = 2 Then myUrl = " ttp://….co.jp/2.html" WebBrowser1.Navigate(myUrl) 'MsgBox("読み込み") 'MsgBoxがあるとその時点で読み込まれる Next End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) _ Handles WebBrowser1.DocumentCompleted If e.Url = DirectCast(sender, WebBrowser).Url Then Dim html As String = WebBrowser1.Document.Body.InnerHtml Console.WriteLine(html) End If End Sub End Class |