ブラウザを自動化するためには
・SeleniumBasic
・ChoromeDriver
が必要です!
※ブラウザ「Chrome」も必要です
また
・ブラウザ「Chrome」のバージョン
・ChoromeDriverのバージョン
が合っている必要があります!
ブラウザ「Chrome」のバージョンは
どんどん変わっていきます!
※よってChoromeDriverとバージョンが合わなくなっていきます。
そのため
・ブラウザ「Chrome」のバージョンに合うように
・ChoromeDriverのバージョンを自動更新
できると便利です!
この記事では
・ChoromeDriverのバージョンを自動更新するVBAコード
を紹介します!
GitHubで公開されている
・WebDriverManager-for-VBA
を使用して自動更新します!
ブラウザ「Chrome」とChoromeDriverのバージョンが合っていないと…
ブラウザ「Chrome」のバージョンとChoromeDriverのバージョンが合っていないと、
エラー「SessionNotCreatedException」が発生します。
WebDriverManager-for-VBAの取得
以下のURLにアクセスする。
「Code」-「Download ZIP」をクリックして「WebDriverManager-for-VBA-main.zip」をダウンロードする。
「WebDriverManager-for-VBA-main.zip」を展開して、展開後のフォルダの中にある「WebDriverManager4SeleniumBasic.bas」をVBEにドロップ & ドラッグする。
VBAコード
SeleniumBasicを使用してURLを表示する前に、「WebDriverManager4SeleniumBasic.bas」内にあるSubプロシージャ「SafeOpen」を実行します。
※実行することでChoromeDriverが自動更新されます。
Option Explicit
Sub sample()
Dim url As String
Dim inputString As String
Dim driver As ChromeDriver
'URL
url = "https://www.google.com"
'検索ボックスに入力する文字列
inputString = "VBA実践ガイド"
'Chromeを起動
Set driver = New ChromeDriver
'ChoromeDriverを自動更新
SafeOpen driver, Chrome
'URLを表示
driver.Get url
'検索ボックスに文字列を入力
driver.FindElementByName("q").SendKeys inputString
'ElementNotVisibleErrorを回避するため1秒待つ
driver.Wait 1000
'検索ボタンをクリック
driver.FindElementByName("btnK").Click
'3秒待つ
driver.Wait 3000
'Chromeを閉じる
driver.Close
Set driver = Nothing
End Sub
実行結果
エラー「SessionNotCreatedException」が起きなくなりました。
参考①
Subプロシージャ「SafeOpen」の詳細は、以下をご確認ください。
参考②
SeleniumBasicのインストール等の詳細は、以下の記事をご確認ください。