SeleniumBasicで静的にdriverを利用する browsers_static

リファレンス

 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

実行の順番は以下のとおです。

1.Wikipedia_1を実行
2.Wikipedia_2を実行
3.ExitDriverでdriverオブジェクトの破棄

Wikipedia_1を実行

Wikipedia_1を実行した画面が以下です。

参照元:https://ja.wikipedia.org/wiki/Main_Page

 コード実行後もブラウザが閉じられる事がありません。

Wikipedia_2を実行

次にWikipedia_2を実行します。実行結果は以下です。

参照元:https://ja.wikipedia.org/wiki/ビジネススクール

 指定したURLがランダムで指定しているアドレスです。今回は「ビジネススクール」についての紹介ページが出てきました。

ExitDriverでdriverオブジェクトの破棄

最後にExitDriverを実行すれば、ブラウザが閉じられます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAを中心とした自動化、効率化の手法を紹介しています。現在は、SeleniumBasicのexamplesを紹介しています。その内、SeleniumBasic以外の手法も掲載したいと思っております。

目次