2016-07-18 17 views
0

私が持っている問題はかなりシンプルです。 Webページを開いて、入力ボックスを探してテキストを入力し、検索ボタンを押します。新しいウェブページがアップロードされると、私は必要なすべての情報を収集します。私の問題は、ウェブページのアップロードに費やされた時間です。新しいWebページがまだ読み込まれていないので、私の収集コードは機能しません。Excelの自動化によるIEの自動化

Do While ie.ReadyState <> READYSTATE_COMPLETE 
      DoEvents 
Loop 

つまりは、私はこの問題を解決するために使用することができますapplication.waitを除き、他のコードがあります。この

Set ie = New InternetExplorer 

のように設定された:私はそれを待つために、次のコードを持っていますか?

答えて

0

同じような問題が発生しました。問題は、IEオブジェクトの準備完了状態が常に信頼できるとは限りません。少なくとも、あなたが思うものを通知するわけではありません。たとえば、ページ全体ではなく、各フレームがいつ準備できているかを知らせます。したがって、実際にWebブラウザコントロールを表示する必要がなく、データの送受信についてのみ気にするならば。私の提案は、Webブラウザオブジェクト内のページのレンダリングに気を使わず、代わりにWinHttpRequestを使ってデータを送受信することです。

ツール>参考資料>これを使用して、MicrosoftのWinHTTPサービス

、あなたは直接HTMLデータを送受信することができます。ページがURLパラメータを使用している場合は、「GET」を送信してから返信を解析します。それ以外の場合は、 "PUT"を送信し、編集したHTMLを送信する必要があります(基本的に空白のフォームページを開き、すべての値を設定します)。最初に使用するときは、自動化しようとしているページの複雑さに応じて正しい書式設定を取得するのはちょっと難しいことがあります。あなたのターゲットページに送信されているHTMLを見ることができるように、良いWeb Duggingツール(Fiddlerなど)を見つけてください。