SeleniumBasicで利用するdriver変数を静的(static)に利用する内容を紹介します。
通常、SeleniumBasicでVBA実行した場合、stop処理をしなければ、コード終了後、自動的にブラウザは閉じられます。今回紹介するコードでは、同モジュール内で異なるプロシージャを同一のドライバーインスタンスで利用します。Privateでプロシージャ外で変数宣言することにより、プロシージャでブラウザを起動しても変数がモジュール内で保持されるため、End Sub後もブラウザが閉じられません。
コードの中身は単純に変数をPrivate変数で宣言しているだけです。他の記事でのクラスモジュールの宣言方法でも同様の事が言えるのですが、この宣言の仕方ではオブジェクト破棄後もオブジェクト変数の再利用ができてしまうので注意が必要です。
- 利用目的は業務効率化です。(テスト自動化ではありません)
- ブラウザはGoogleChromeが対象です。(EdgeやFirefoxは対象外)
- 原文のVBAでは現在エラー発生する場合が多いため、修正を加えてます。
Examples.xlsmの保存場所(ここをクリック)
Examples.xlsmが保存されている場所は、SeleniumBasicがインストールされているサブフォルダ内になります。SeleniumBasicのインストール完了時に保存フォルダを確認することができます。ただ、大体以下フォルダのどちらかにファイル保存されています。
- C:\Program Files\Seleniumbasic\Examples\Excel
- shell:Local AppData\SeleniumBasic\Examples\Excel
コード実行
コードは、ChromeDriverで設定しています。
Private driver As New Selenium.ChromeDriver
Private Assert As New Selenium.Assert
Private Verify As New Selenium.Verify
Private Waiter As New Selenium.Waiter
Private utils As New Selenium.utils
Private Keys As New Selenium.Keys
Private By As New Selenium.By
Option Explicit
Public Sub Wikipedia_1()
driver.Get "https://ja.wikipedia.org/wiki/Main_Page"
End Sub
Public Sub Wikipedia_2()
driver.Get "https://ja.wikipedia.org/wiki/Special:Random"
End Sub
Public Sub ExitDriver()
driver.Quit
Set driver = Nothing
End Sub
実行の順番は以下のとおです。
Wikipedia_1を実行
Wikipedia_1を実行した画面が以下です。
コード実行後もブラウザが閉じられる事がありません。
Wikipedia_2を実行
次にWikipedia_2を実行します。実行結果は以下です。
指定したURLがランダムで指定しているアドレスです。今回は「ビジネススクール」についての紹介ページが出てきました。
ExitDriverでdriverオブジェクトの破棄
最後にExitDriverを実行すれば、ブラウザが閉じられます。