【環境】Selenium,vba(Excel2010),windows10
【実現したいこと】
VBAのSeleniumからURLを開いた時に、既存設定ではページ読み込み完了まで
待機してしまいます。次の処理でエラーが出ても構わないため、
待機させないようにする。(高速化のため)
【質問】
調べると、以下関数で指定要素を取得するまで待機させることで
高速化する記事がありますが、そうではなく、待機時間を0にする
方法について、助言いただけると助かります。
driver.WaitNotElement
driver.WaitForScript
【一般的なコード】(VBA)
Sub サイト開く()
Dim URL1 As String
Dim driver As New Selenium.WebDriver
driver.Start "chrome"
URL1 = "https://www.google.com/"
driver.Get URL1
Stop 'ここで一時停止
driver.Close
End Sub
ページ読み込み完了までまたないと、DOMを取得できませんので、エラー以前に次に何もできません。
driver.WaitNotElement
driver.WaitForScript
というのはページ読み込み完了後にさらにスクリプト等で動的に読み込んで変更している場合に待機する処理ですので、また、別の話です。
高速化したいなら、「selenium chrome ヘッドレス」あたりをキーワードにググってみるといいかもしれません。
回答ありがとうございます。やはり厳しいですか。
なお、 driver.Get URL1 をした後は、Seleniumとは全く別の作業(エクセルの処理)を
させるため、何もできなくとも構いません。
ヘッドレスモードも試したものの、私の環境ではほぼ効果が無く、ほかの手段を探しておりました。
待機せずに次の行のコードを実行したいということですね。
やったことがないので分かりませんが、pageLoadStrategy の設定ができるかもしれません。
ページ読み込み戦略 :: Seleniumドキュメント
https://www.selenium.dev/documentation/ja/webdriver/page_loading_strategy/
おお~ まさにこちらがやりたいことです。
"none"を指定できれば、待ち時間0にできそうですね。残念ながらVBAの記述例はなく、もう少し調べてみます。
回答1件
あなたの回答
tips
プレビュー