14/12/22 20:31:45.56 E8xrqwS0.net
みなさんこんばんわー
IEを操作して、新しくページに出てくるリンクに移動する処理のページ表示待機部分についての質問です。
そのサイトが重いのでページ表示に時間がかかるのでなるべく早くしたいと思ってます。
IEでの描写、画像読み込みが遅いのでそこを飛ばして、次のリンク移動処理に行きたいんです。
現在こういうページ待ちの方法なのですが、これをどうにか早くする方法はないでしょうか?
Public Function OpenWebWait() As Boolean
Try
Do While (objIE.Busy OrElse objIE.ReadyState <> SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
System.Windows.Forms.Application.DoEvents()
System.Threading.Thread.Sleep(80)
Loop
Return True
Catch ex As Exception
Return False
End Try
End Function
下のようにcompleteではなくinteractiveにしてもリンクURL取得は出来るかと思ったのですが、出来ませんでした。
これで早く次の処理に進めると新しいリンクの検知が出来ませんでした。
Do while objIE.ReadyState < SHDocVw.tagREADYSTATE.READYSTATE_INTERACTIVE
新しく現れるリンクのテキストはわかっているので、このようにも変えてみました。
これも次の処理に進むと新しいリンクの検知が出来ませんでした。
Do Until InStr(objIE.Document.Body.InnerHTML, "XXXXXXXXX") > 0
どこか間違ってる部分あるでしょうか?
それか何か良いアイディアありませんか?
VBAだとobjIE.ReadyStateではなくobjIE.document.ReadyStateというのが使えて、問題無く処理が進んで行くのですが。。
Do While objIE.document.ReadyState = "uninitialized" Or objIE.document.ReadyState = "loading"