seleniumのEXCEL やAccess VBAでwebページをロード待ちさせるコード。 seleniumでのVBA関連のコーディングに詳しい方ご教授ください。
seleniumのEXCEL やAccess VBAでwebページをロード待ちさせるコード。 seleniumでのVBA関連のコーディングに詳しい方ご教授ください。 Dim driver As New Selenium.WebDriver Public Sub sample() driver.Start "edge" driver.Get "https://○○.jp/" driver.Wait 1000 End Sub 上記コードであればとりあえず1秒待機させる処理はできました。しかしご存じの通り、1秒で必ずロードできる保証はないので IEで言うところの↓ Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop のようなコーディングをしたいのです。 Pythonならそのようなコードは沢山検索できるのですがVBAに特化したものだとありません。 pythonでの当該コードをVBAで張り付けても作動しません。 selenimumは自動でロード待ちしてくれるからwaitだけでいい、という記述も見ましたがもし私の要望のようなコードがあるのでしたらご教授ください。
Visual Basic | プログラミング・128閲覧・500
ベストアンサー
参考になるかは解らんけど https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11263081326 crm.SetCapability "pageLoadStrategy", "none" で待機無し eager で、objIE.readyState で言うと 3 normal または、設定無しなら objIE.readyState で言うと 4 まで、待機します normalの状態でタイムアウトが発生するようなら noneで設定して Do Whileループで要素の存在チェックを入れるとかで対応するとかで
2人がナイス!しています
seleniumでは Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop ⇑ この処理を内部で行っているけど一定時間経過で”TimeOut”を吐き出して完全な読み込み完了までは待たない 動作の重いPCでYahooを開くと高確率でエラーになる その際に .SetCapability "pageLoadStrategy", "none" でとりあえず読み込みを開始して 次の処理に必要な要素が読み込まれるまで Do While 要素.Count = 0 Loop で待機処理を行うことでエラーを回避できるってことです
質問者からのお礼コメント
お二方、ありがとうございました、 それぞれ教授いただいたやり方でうまくいけそうです。 とても助かりました!
お礼日時:7/1 17:16